127
124
120
117
114
112
111
109
110
111
112
114
117
120
124
127
131
136
140
145
149
153
156
158
160
162
163
162
161
159
157
154
150
146
142
137
133
129
125
122
118
115
112
111
109
109
110
111
113
116
119
122
126
130
135
139
143
147
152
155
157
160
161
162
162
162
160
158
155
152
148
144
139
134
131
127
123
118
115
113
111
110
109
109
111
112
115
118
121
126
128
133
137
142
146
150
154
156
159
161
162
162
162
160
159
156
152
149
145
140
136
132
127
124
119
117
114
112
111
109
110
110
112
114
117
120
124
127
132
136
140
144
149
153
156
158
160
162
162
162
161
159
157
154
150
146
142
137
133
128
125
121
118
115
112
111
110
109
110
111
113
116
118
122
126
129
134
139
144
147
152
154
157
160
161
162
162
161
159
157
155
152
147
143
138
134
132
126
119
120
115
111
114
110
107
111
110
110
117
118
120
126
128
132
137
142
146
151
152
156
159
160
162
163
162
159
158
155
152
149
145
140
135
131
127
124
120
117
114
111
110
109
109
110
112
114
117
120
124
127
131
136
140
144
148
152
155
158
159
161
162
162
161
159
156
153
150
146
142
137
133
129
125
121
117
115
112
110
109
110
110
111
113
116
118
123
126
130
134
139
143
147
152
153
158
160
160
162
163
162
158
157
156
151
148
142
139
135
130
126
122
119
115
113
111
109
110
109
110
111
115
118
121
125
128
133
137
141
146
150
153
157
158
160
162
162
161
161
159
155
153
148
145
140
136
131
127
124
120
117
114
111
110
110
109
110
111
113
116
120
123
127
131
135
140
144
148
152
155
158
160
162
161
162
161
159
156
154
150
146
142
137
133
129
125
121
118
114
113
111
109
109
109
111
113
115
118
122
126
130
134
139
143
147
151
154
157
159
161
162
162
161
160
157
155
151
148
144
138
135
130
126
123
119
115
113
111
110
109
109
111
112
114
117
121
125
129
133
137
142
145
150
153
157
158
161
162
162
162
160
158
155
153
149
145
140
136
132
127
124
120
117
113
111
110
109
109
110
111
114
117
120
124
127
131
136
140
144
149
152
155
158
160
162
162
162
161
159
156
154
150
146
141
137
133
128
125
121
118
115
113
110
110
110
109
111
113
116
118
122
126
130
134
139
143
148
151
154
158
159
161
162
162
161
160
157
155
151
147
144
139
135
130
126
122
119
116
113
111
110
109
109
111
112
115
117
121
125
129
133
137
141
146
150
153
157
158
161
161
162
161
160
158
155
153
148
145
141
137
131
127
123
120
117
113
111
110
109
109
111
111
114
117
120
124
127
131
136
140
144
149
152
156
158
160
162
162
162
161
159
156
153
150
147
143
138
132
128
125
122
118
115
112
111
110
109
109
111
113
115
119
122
127
130
133
138
144
147
150
155
157
159
161
161
162
162
160
157
155
151
147
144
139
134
130
126
122
119
116
113
111
110
109
110
111
112
115
118
121
125
128
133
137
141
146
151
152
156
159
161
161
162
161
161
158
155
153
149
145
140
136
131
127
124
120
116
114
111
110
109
109
110
111
114
116
120
123
127
131
135
140
144
149
152
156
158
160
162
162
162
161
159
156
153
150
146
142
137
133
129
125
121
118
115
113
110
109
109
110
111
113
115
118
122
126
130
134
139
143
147
151
154
157
159
161
161
162
161
159
157
155
152
147
144
138
135
130
127
122
119
116
113
111
110
109
109
110
112
114
117
121
125
128
132
137
142
146
149
153
156
158
160
162
162
162
161
158
155
153
149
145
140
136
131
127
124
120
117
114
111
110
109
109
110
111
114
116
120
124
127
131
135
140
144
148
152
155
158
160
161
162
162
160
159
156
154
150
146
142
137
133
128
125
121
118
115
113
111
110
109
110
111
113
115
119
122
126
130
134
139
143
147
151
154
157
159
161
162
162
161
160
157
155
151
147
143
139
135
130
127
123
119
116
113
111
110
109
109
111
112
115
117
121
125
128
132
137
141
145
150
153
157
158
161
162
162
161
160
158
156
152
149
145
140
136
131
127
124
120
116
114
112
110
109
109
110
111
114
116
120
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
156
154
150
146
142
138
133
129
125
121
118
115
112
111
110
109
110
111
112
115
118
122
126
130
133
138
143
147
150
154
157
159
161
162
162
161
159
157
155
151
147
144
139
134
130
127
122
119
115
113
111
110
109
109
111
111
115
117
121
124
128
132
136
141
145
150
153
156
158
161
162
162
162
160
158
156
153
149
144
140
136
132
127
124
120
117
114
111
110
109
109
111
111
114
116
120
124
127
131
135
140
144
148
152
155
157
160
161
162
161
161
159
157
154
150
146
142
138
136
127
122
123
117
113
116
110
108
111
109
109
115
115
118
123
125
128
134
139
143
148
150
154
158
159
162
163
162
160
160
157
154
151
148
144
139
134
130
127
122
119
116
113
111
110
109
109
110
112
115
117
121
125
128
133
137
141
145
150
153
156
158
161
162
162
162
160
158
155
153
149
145
140
136
132
127
124
120
117
114
111
110
110
110
110
111
114
117
120
124
127
131
135
140
144
148
152
155
158
160
162
162
162
161
159
156
154
150
147
143
137
135
127
126
123
117
115
112
111
109
109
110
111
113
115
118
123
126
130
134
138
143
147
151
154
157
159
161
162
162
161
160
157
155
152
148
144
138
134
131
127
122
119
117
113
111
110
110
110
111
112
115
117
121
125
128
132
137
142
146
150
153
157
158
160
162
162
161
160
158
156
153
149
145
141
136
131
127
124
120
117
114
112
110
110
109
110
111
113
116
120
123
127
131
135
140
144
148
152
156
158
160
162
162
162
161
159
157
154
150
146
142
138
134
129
125
121
118
115
113
111
109
109
110
111
113
116
118
122
126
130
134
139
143
147
151
154
157
159
161
162
162
161
160
158
155
152
148
144
139
135
130
127
123
119
116
113
111
110
109
110
111
112
115
117
121
125
128
132
137
142
145
150
153
157
159
161
162
162
162
160
158
156
153
149
145
140
137
131
127
124
120
117
114
112
110
110
109
110
111
114
116
120
123
127
131
135
140
144
148
152
156
158
160
162
162
162
161
159
157
154
150
146
142
138
133
129
125
121
118
115
113
111
109
109
110
111
112
115
118
122
126
130
134
139
143
147
151
155
157
159
161
162
162
161
160
157
155
152
148
144
139
135
130
127
122
119
115
113
111
110
109
110
111
111
114
117
121
125
128
132
137
142
145
149
153
156
158
161
162
162
161
161
158
156
153
149
145
141
136
131
128
124
120
116
115
112
109
110
109
111
111
113
116
120
123
127
131
135
140
144
148
152
155
158
161
161
162
162
161
159
157
154
150
146
142
138
133
129
126
121
118
114
113
112
109
108
110
111
112
115
118
122
126
129
133
138
143
147
151
154
157
159
161
162
162
161
160
157
155
151
147
144
140
135
130
126
122
120
116
113
111
110
110
109
111
111
114
117
121
124
128
132
137
141
145
149
153
156
158
161
162
162
161
160
158
156
152
149
146
142
136
131
127
124
121
117
114
111
110
109
109
110
111
113
116
120
123
127
131
135
140
144
148
152
156
158
160
161
162
161
161
159
156
154
150
146
142
138
133
129
125
121
118
115
113
111
110
109
110
111
113
115
118
122
126
130
133
139
142
147
151
154
157
159
161
162
162
161
160
157
155
152
148
143
139
135
130
127
123
119
115
113
111
110
109
109
111
112
115
117
121
125
128
133
137
141
145
150
153
156
159
161
161
162
162
160
158
155
153
149
145
140
136
131
127
123
120
117
114
112
110
110
109
110
111
114
116
119
123
127
131
135
140
144
148
152
155
158
160
162
162
162
160
159
156
154
150
146
142
137
133
128
125
121
118
115
112
111
110
109
110
111
112
115
118
122
126
130
134
139
143
147
151
154
157
158
161
161
162
161
160
157
155
152
148
144
139
135
130
127
123
119
116
113
111
110
109
110
111
111
114
117
121
124
128
132
137
141
145
149
153
156
158
161
161
162
162
161
158
156
153
149
145
141
136
132
128
124
120
117
114
112
111
109
109
110
111
114
116
120
123
127
131
135
139
144
148
151
155
158
160
161
162
162
161
159
157
154
150
147
142
138
133
129
125
122
118
115
112
111
110
109
110
111
113
115
119
121
126
129
133
138
142
147
151
154
157
159
161
162
162
161
159
158
155
152
148
144
140
135
131
127
123
119
116
113
111
110
109
110
111
112
114
117
120
124
127
132
137
141
145
149
153
156
158
160
162
162
162
161
158
156
152
149
144
142
139
130
127
126
118
117
118
110
111
111
107
110
113
112
116
120
122
126
131
135
140
144
147
152
156
157
161
162
162
161
162
159
157
154
151
146
142
138
134
129
126
122
118
115
113
111
110
109
110
111
113
115
118
122
126
129
134
138
142
146
150
154
157
159
160
162
162
161
159
158
155
152
148
144
140
135
131
127
123
119
116
114
111
110
109
110
110
112
114
117
121
125
128
132
137
141
145
149
153
156
159
160
162
162
161
160
158
156
153
149
144
143
137
132
127
124
122
115
115
112
110
109
109
111
112
113
116
120
123
127
131
135
139
144
148
151
155
158
160
161
162
162
161
159
157
154
151
147
143
138
132
129
126
122
117
115
113
110
110
109
110
111
113
115
118
122
125
129
133
138
143
147
150
154
157
159
161
162
162
161
160
157
155
151
148
144
140
135
130
127
123
119
116
113
111
110
109
110
110
112
114
117
120
124
128
132
137
141
145
149
153
156
159
161
162
162
161
161
158
156
152
149
145
141
136
132
127
124
120
117
114
111
110
109
109
110
111
113
116
120
123
127
131
135
139
144
147
152
155
158
160
161
162
162
161
159
157
154
151
147
142
138
133
129
125
122
118
115
112
111
109
109
109
111
112
115
119
122
126
129
134
138
142
147
151
154
157
159
160
162
162
161
159
158
155
152
148
144
139
135
131
127
123
119
116
113
111
110
109
109
110
112
114
117
120
124
128
132
137
141
145
149
153
156
159
160
162
162
161
161
158
156
153
149
145
141
136
132
127
124
120
117
114
111
110
109
109
110
111
113
116
119
123
127
130
135
139
144
148
152
155
158
160
161
162
162
161
159
157
154
150
146
142
138
133
129
125
121
118
115
112
111
110
109
109
111
113
115
118
122
126
129
134
138
143
146
151
154
156
159
161
161
161
162
160
156
155
152
148
144
139
135
131
127
123
119
116
112
112
110
109
110
110
112
114
117
120
125
127
132
136
141
145
149
153
156
159
160
162
162
161
160
160
155
152
150
145
141
137
132
128
125
120
117
114
112
110
110
109
110
111
113
116
119
123
127
131
134
139
144
148
152
155
158
159
162
162
162
161
159
157
154
150
147
143
138
134
129
126
121
118
115
113
111
110
109
110
111
112
115
118
122
125
130
133
138
143
146
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
135
130
127
123
120
116
114
111
110
110
109
111
111
114
117
121
124
127
132
136
141
145
149
153
156
158
161
161
162
162
160
159
156
153
149
145
141
136
132
127
124
120
117
114
112
110
109
109
110
111
114
116
119
123
127
131
135
139
144
148
152
155
157
160
161
162
162
161
159
157
154
150
146
143
139
134
129
125
122
119
115
112
110
110
109
110
111
112
115
118
122
126
129
133
138
142
147
150
154
157
159
161
162
162
161
160
158
155
152
149
144
140
135
130
127
123
120
116
113
111
110
109
109
110
111
114
117
121
124
127
132
136
141
145
149
153
156
158
161
162
162
162
161
159
156
153
149
145
140
136
132
128
124
121
117
114
112
111
109
109
110
111
114
116
119
123
127
131
135
140
144
148
152
156
157
160
161
162
162
161
159
157
155
150
146
143
138
134
130
126
122
118
115
113
111
109
109
110
111
113
115
118
122
125
129
134
138
142
146
150
154
157
159
161
162
162
161
160
157
155
152
148
144
139
135
130
127
123
119
116
113
111
110
109
109
111
112
114
117
121
124
128
132
136
141
145
150
153
157
158
161
161
162
162
161
158
156
153
149
145
141
137
132
128
124
121
117
114
112
110
109
109
110
111
113
116
119
123
127
130
135
140
144
148
152
155
158
160
161
162
161
161
159
157
154
150
146
142
139
133
130
126
122
118
115
113
111
110
109
110
110
113
115
118
121
125
129
133
138
142
146
150
154
156
160
161
162
162
162
160
157
155
151
148
144
142
132
129
128
121
120
119
111
111
112
107
110
111
111
114
118
119
124
127
132
137
140
144
149
153
155
159
161
161
161
162
160
158
156
153
149
145
141
137
132
127
124
121
117
114
112
110
109
109
110
111
113
116
119
123
127
130
135
139
144
147
152
155
158
160
161
162
162
161
159
157
154
151
146
143
138
133
129
125
122
118
115
113
111
109
109
109
111
112
115
118
121
126
128
133
138
142
146
150
154
157
159
161
162
162
161
159
158
155
152
148
144
140
135
130
127
123
119
118
111
112
111
109
109
110
112
113
117
120
125
128
131
136
141
145
149
153
156
158
160
162
162
162
160
158
156
153
149
145
141
136
132
127
124
121
117
114
112
111
109
109
110
111
113
116
119
123
127
130
135
139
144
148
152
155
158
161
161
162
162
161
159
157
154
151
146
142
138
134
129
125
122
118
115
112
111
109
109
109
111
112
115
118
122
126
129
133
138
143
147
151
154
157
159
160
162
162
162
160
158
155
152
148
144
140
136
131
126
123
120
117
113
111
110
109
109
110
112
114
117
121
124
127
132
136
141
145
149
153
156
158
160
162
162
162
160
158
156
152
149
146
142
136
132
127
125
121
118
114
112
110
110
109
110
111
113
116
119
123
127
131
135
139
143
148
152
155
158
159
161
162
162
161
159
157
154
151
147
143
138
134
129
126
122
118
115
113
111
109
109
110
111
112
116
118
122
125
129
134
138
142
146
151
154
157
159
161
162
162
161
160
158
155
152
148
144
139
135
131
127
123
120
116
114
111
110
110
109
111
112
114
117
120
125
127
132
136
141
145
149
153
156
159
160
162
162
162
160
159
155
153
149
145
141
137
132
127
125
121
117
114
112
110
109
109
110
111
113
115
120
124
126
130
135
139
144
148
151
155
158
159
161
162
162
161
159
157
155
151
147
143
139
134
129
126
122
119
115
113
111
110
109
110
111
112
116
117
122
127
129
133
138
143
146
150
153
157
159
161
162
162
161
160
158
155
151
148
144
140
135
131
127
123
120
116
114
111
110
110
110
111
111
114
117
121
124
127
132
137
141
145
149
153
156
158
160
161
162
162
161
158
156
153
149
146
141
137
132
128
124
121
117
114
112
111
109
109
110
111
113
116
119
123
127
131
134
139
144
148
152
155
158
160
161
162
162
161
159
157
154
151
147
143
138
134
130
126
122
119
115
113
111
110
109
110
111
112
115
118
122
125
129
133
138
142
146
150
154
157
159
161
162
162
161
160
158
156
152
148
144
140
135
131
127
123
120
116
114
111
110
109
110
110
112
114
116
121
124
128
132
136
141
145
149
153
156
159
161
161
162
161
161
158
156
153
150
145
141
137
132
128
124
121
117
114
112
111
109
110
110
111
113
116
119
123
127
131
135
139
144
148
152
155
157
160
161
162
162
161
159
157
154
151
147
143
138
133
130
126
122
118
115
113
111
110
109
110
111
113
115
118
121
126
129
133
138
142
146
150
154
156
159
161
162
162
161
160
158
155
152
148
144
140
135
131
127
123
119
116
114
111
110
109
110
110
112
114
117
120
124
127
132
136
141
145
149
153
156
158
160
161
162
162
160
159
156
152
149
146
142
137
132
127
124
121
118
115
111
111
109
110
110
111
113
116
119
123
127
130
135
139
144
147
152
155
157
160
161
162
162
161
159
157
154
151
147
143
138
133
129
126
123
118
115
112
111
110
110
109
111
112
115
118
121
126
128
133
137
142
146
150
153
157
159
161
162
162
161
159
158
155
152
148
144
140
135
131
127
123
119
116
113
111
110
110
109
110
111
114
117
120
124
127
131
136
140
144
149
153
155
158
161
161
162
162
161
158
156
153
150
146
141
137
133
127
124
121
117
114
112
110
109
110
110
111
113
116
119
123
126
130
134
139
144
147
152
154
157
159
161
162
162
161
159
157
154
152
149
140
137
135
127
127
124
116
116
114
109
110
111
108
111
113
114
117
121
126
129
133
137
143
146
150
154
158
158
160
162
162
161
160
158
154
152
149
144
140
136
131
127
123
119
116
113
111
110
109
109
110
112
114
117
120
124
127
132
136
141
145
149
153
155
158
160
161
162
161
161
158
156
153
150
145
141
137
133
127
124
121
117
114
112
110
109
109
110
111
114
116
119
123
127
130
135
139
144
147
152
154
158
159
161
162
162
161
159
157
154
151
147
143
138
134
130
126
122
118
115
113
110
110
110
107
111
113
115
117
121
127
129
133
137
143
146
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
135
131
127
123
120
116
113
111
110
109
109
111
112
113
116
121
124
127
132
136
141
145
149
152
156
158
160
162
162
162
160
159
156
154
150
146
142
137
132
128
125
121
118
114
112
111
110
109
110
111
113
116
119
123
126
131
134
139
143
148
151
155
157
159
161
162
162
161
159
157
154
151
147
143
139
134
130
126
122
118
115
113
111
110
109
109
111
112
115
118
121
125
129
133
137
142
146
150
154
157
159
161
162
162
162
160
158
156
152
149
144
140
136
131
127
124
120
116
114
111
110
109
110
110
112
114
116
120
123
127
131
136
140
145
148
153
156
158
160
161
162
162
161
158
157
153
150
146
141
137
133
129
125
121
117
115
112
110
110
109
110
111
113
116
119
122
127
130
135
139
143
147
151
155
157
159
161
162
162
161
159
157
154
150
147
143
140
134
129
125
122
119
116
113
111
110
109
110
111
112
115
118
122
125
129
133
138
141
146
150
154
157
159
161
162
162
161
160
158
155
151
149
145
139
134
131
127
122
120
116
114
111
110
109
110
110
111
114
116
120
123
127
131
136
141
145
149
152
156
158
161
161
162
162
161
159
156
153
150
146
141
137
132
129
125
120
117
115
112
110
109
109
111
111
113
116
119
122
127
130
134
139
144
147
151
154
157
159
161
162
162
161
159
157
154
151
147
143
139
134
130
126
122
118
115
113
111
110
109
110
110
112
114
118
121
125
129
133
138
141
146
150
154
156
159
161
162
162
161
160
158
155
152
148
144
140
135
131
127
123
120
116
114
111
110
109
109
110
112
114
116
120
124
127
131
136
140
145
149
152
155
158
160
161
162
161
161
158
156
153
150
146
142
137
132
128
124
121
117
115
112
111
110
109
110
111
113
116
119
122
127
130
134
139
143
148
152
155
157
159
161
162
161
161
159
157
154
151
147
143
139
133
130
126
122
118
115
113
111
110
109
109
111
112
114
118
121
125
128
133
137
142
146
150
153
156
159
161
162
162
162
160
158
155
152
148
144
140
135
131
127
123
120
116
114
111
110
109
109
110
111
114
117
120
124
127
132
136
140
145
149
152
155
158
160
161
162
162
161
158
156
153
150
145
142
137
133
128
125
120
117
114
112
110
109
109
110
111
113
116
119
123
127
130
134
139
144
147
152
154
157
159
161
162
162
161
159
157
154
151
147
143
138
134
130
126
122
118
115
113
111
110
109
109
111
112
115
118
121
125
128
133
137
142
146
150
153
157
158
161
162
162
162
160
158
155
152
148
144
140
135
131
127
124
120
116
114
111
109
109
109
110
112
114
116
120
124
127
131
136
140
145
148
152
156
158
160
162
162
162
160
159
156
153
150
146
142
137
133
128
125
121
118
114
112
110
109
109
110
111
113
116
119
123
126
130
134
139
143
148
151
155
157
160
161
162
162
161
160
157
155
151
147
143
139
134
130
126
122
119
116
113
111
110
109
109
110
112
115
117
121
125
129
133
138
141
146
150
153
157
159
161
162
163
161
161
158
156
152
148
145
141
137
131
127
123
120
117
114
111
110
109
109
110
112
114
116
121
124
127
131
136
140
145
149
152
156
158
160
161
162
162
161
158
156
155
151
143
143
138
130
131
126
119
120
115
110
112
110
108
110
111
112
116
119
123
127
129
135
140
143
147
152
155
157
159
162
162
162
162
160
157
155
151
147
143
139
134
130
126
122
118
115
113
111
110
109
110
111
112
114
118
121
125
129
133
137
141
146
150
154
156
159
161
162
162
162
161
158
156
152
148
144
140
135
131
127
124
120
116
114
111
110
109
109
110
111
114
116
120
124
127
132
136
140
145
149
153
155
158
160
162
162
161
161
158
156
153
150
146
142
137
133
128
125
121
118
115
112
111
109
109
110
111
114
116
118
122
127
131
133
140
144
147
151
154
158
161
161
162
161
161
160
157
155
151
148
143
139
134
130
126
122
119
115
113
111
110
109
109
111
112
115
117
122
126
129
132
138
142
146
150
154
157
159
160
162
162
161
160
158
155
152
149
145
140
136
131
127
123
120
116
114
111
110
109
109
110
111
114
116
120
123
127
132
136
140
145
149
152
156
158
161
161
162
162
161
158
156
153
150
146
142
137
133
128
125
121
117
115
112
111
110
109
110
111
113
115
119
123
127
130
134
139
143
148
151
155
157
159
161
162
162
161
160
158
155
151
147
143
139
134
130
126
122
118
116
113
111
110
109
110
110
112
115
118
121
125
129
133
137
142
146
150
153
157
159
160
162
162
162
160
158
155
152
149
144
140
136
131
127
124
120
116
114
111
110
109
109
110
111
113
116
120
124
127
131
136
140
145
148
153
155
158
160
162
162
162
161
159
157
153
150
146
141
137
133
128
125
121
118
114
112
110
109
109
110
111
113
115
119
122
126
130
134
138
143
147
152
155
156
159
162
162
161
162
160
158
154
151
147
144
138
134
130
126
123
119
116
113
111
109
109
109
110
112
115
117
120
125
128
133
137
142
146
150
153
157
158
160
163
162
161
160
159
155
152
148
144
140
136
131
127
124
120
117
113
112
110
109
109
110
112
114
116
120
124
127
132
135
140
144
148
152
155
158
160
162
162
162
160
159
157
153
149
146
143
138
133
128
125
121
118
115
112
110
109
110
110
111
112
116
119
123
127
130
134
138
143
147
151
154
157
159
161
162
162
161
159
157
154
152
148
144
139
134
129
127
123
119
115
113
111
110
109
109
110
112
115
117
121
125
128
133
137
141
145
150
154
157
158
161
162
162
162
160
158
156
153
148
145
140
136
132
127
124
120
117
114
111
110
109
109
110
111
114
116
120
124
127
132
136
140
144
148
152
155
158
160
162
162
162
160
159
156
153
150
146
142
137
133
128
125
121
117
115
112
111
109
109
109
111
113
116
119
123
127
130
135
139
144
147
152
154
158
159
161
162
162
161
159
157
154
152
147
143
139
134
130
126
122
118
116
113
111
110
110
109
111
112
114
117
121
125
128
133
137
142
146
150
153
157
159
161
162
162
161
160
158
155
153
149
145
140
136
131
127
124
120
117
114
112
110
109
109
110
111
114
116
120
124
127
132
135
140
144
149
152
155
158
160
162
162
162
161
159
156
153
150
146
142
137
133
128
125
121
118
114
113
110
110
110
110
111
113
116
119
122
127
130
134
139
143
147
151
154
157
159
161
162
162
161
160
157
155
151
147
143
139
135
130
127
122
119
116
113
111
110
110
110
111
112
115
118
121
125
128
132
137
142
146
150
153
157
159
161
162
162
161
160
158
156
152
149
145
140
136
131
127
124
120
117
114
111
110
109
109
110
111
114
117
120
124
127
131
135
140
144
149
152
156
158
160
161
162
162
160
159
156
154
150
146
142
138
133
129
125
121
118
115
112
110
110
109
110
111
113
116
119
122
126
130
134
139
143
147
151
155
157
159
161
162
162
160
160
157
155
151
147
143
139
134
130
126
123
119
116
114
111
110
109
110
111
112
114
117
121
125
128
133
137
142
146
150
153
156
159
161
162
162
161
159
159
158
150
147
146
137
137
134
126
124
122
114
114
113
109
109
110
109
111
114
116
120
123
127
132
136
140
145
149
152
155
158
160
161
162
162
160
158
157
154
150
146
141
137
133
129
125
121
117
115
112
110
109
109
110
111
113
115
119
122
126
129
134
138
143
147
151
155
157
160
161
162
162
161
159
157
155
150
147
144
139
134
130
125
123
119
116
113
111
110
109
110
111
112
114
117
121
125
128
133
137
141
146
150
153
156
159
161
162
162
162
160
158
156
152
149
145
141
135
131
127
124
120
116
114
111
111
109
109
110
111
114
116
120
124
127
132
137
139
144
149
152
154
158
160
161
162
161
161
159
156
153
150
146
142
138
133
129
125
122
117
115
112
110
109
109
110
111
112
116
118
122
127
130
134
138
143
148
150
154
158
159
160
162
162
161
159
157
154
152
148
143
139
134
130
127
123
119
116
113
111
110
109
109
110
112
114
117
121
125
128
133
137
142
146
149
153
156
159
161
162
162
161
160
158
156
153
149
144
141
136
132
127
124
120
117
114
111
110
109
109
110
111
114
116
120
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
157
153
150
146
142
137
133
129
125
121
117
115
112
111
109
109
110
111
113
115
119
122
126
130
134
139
143
147
151
155
157
160
161
162
162
161
160
158
154
151
148
143
139
134
130
127
123
119
116
113
111
110
109
110
111
112
114
118
121
125
128
132
137
141
146
150
154
156
159
161
162
162
162
160
158
156
153
149
144
140
136
131
127
124
120
117
114
112
110
109
110
111
111
113
118
119
123
127
131
136
140
144
149
153
155
158
161
161
162
162
161
158
157
153
150
146
142
137
133
129
125
121
118
115
113
111
110
109
110
111
113
115
120
123
125
129
135
138
143
147
151
155
158
159
161
162
162
162
159
158
155
152
148
143
139
134
130
126
123
118
116
113
111
110
109
110
111
112
114
118
121
125
128
133
137
142
146
149
153
156
159
161
162
162
162
161
158
156
152
149
145
141
136
132
127
124
120
117
114
111
110
109
109
110
111
114
116
120
124
127
131
136
140
145
148
152
155
158
160
161
162
162
161
159
157
154
150
146
142
137
133
129
125
122
118
115
112
111
110
109
110
111
113
115
118
122
126
130
134
138
143
147
151
154
157
160
161
162
162
162
160
158
155
152
148
144
139
134
130
126
123
119
116
113
111
110
109
110
111
112
114
117
121
125
128
132
138
141
146
150
154
156
159
160
162
162
161
160
158
156
152
149
145
141
136
131
127
124
120
117
114
111
110
109
110
110
112
113
117
120
124
127
131
136
140
144
148
152
155
158
160
162
162
162
161
159
156
153
150
147
143
137
132
129
125
121
118
115
112
111
109
109
110
111
112
116
119
122
126
129
134
138
143
147
151
154
157
159
161
162
162
161
159
157
155
151
147
143
139
135
130
126
123
119
116
113
111
110
110
109
110
112
114
117
121
125
128
133
137
142
145
150
153
156
159
161
162
162
162
160
158
155
153
149
145
141
136
132
127
124
120
117
114
111
110
109
109
110
111
114
117
120
124
127
131
135
140
144
148
152
155
158
160
161
162
161
161
159
157
154
150
146
142
137
133
128
125
121
118
115
112
111
109
109
110
111
113
115
118
122
126
129
134
138
143
147
151
154
157
159
161
162
162
161
159
158
155
152
147
144
139
135
130
126
123
119
116
113
111
110
110
109
111
112
114
117
121
124
128
132
137
141
145
150
153
156
159
161
162
162
162
160
158
156
153
149
145
141
136
132
127
124
120
117
114
112
110
109
110
110
111
113
116
120
124
127
132
135
140
144
149
152
155
158
159
162
162
162
160
159
157
154
150
146
142
137
133
128
126
121
118
115
113
111
110
109
110
111
113
115
119
122
126
130
134
138
143
147
151
154
157
159
161
162
162
161
161
161
152
150
150
141
139
137
127
127
125
117
116
115
110
110
111
108
110
112
114
118
121
124
129
133
136
142
146
149
153
157
159
160
162
162
161
160
158
156
153
149
145
140
136
132
127
124
120
117
114
112
110
110
109
111
112
114
116
120
124
127
131
135
140
144
148
152
155
158
160
162
162
162
160
159
157
154
150
146
142
137
134
129
126
121
118
115
113
111
110
109
110
111
112
115
118
122
126
130
134
138
143
147
151
154
157
159
161
162
162
161
160
157
155
151
148
144
139
134
130
127
123
119
116
114
111
110
109
110
111
112
114
117
121
125
128
132
136
142
146
149
153
157
158
161
162
162
161
160
159
156
153
149
146
141
136
131
128
124
120
117
114
112
110
109
109
111
111
113
116
120
123
127
131
135
140
144
149
152
155
157
161
162
161
162
162
159
156
154
150
146
142
138
133
128
125
122
118
115
113
110
110
109
110
111
113
115
118
122
126
130
133
138
142
147
151
154
157
159
161
162
162
161
160
157
155
152
148
144
140
134
130
127
123
119
115
113
111
110
109
109
111
111
115
117
121
124
128
132
137
141
145
149
153
157
158
161
161
162
162
161
158
156
152
149
145
141
137
132
127
124
121
116
114
112
110
110
109
110
111
114
116
120
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
157
154
150
147
142
138
133
129
125
121
118
115
113
111
110
109
110
111
112
115
118
122
126
129
134
139
142
147
150
154
157
160
161
162
162
161
160
157
155
152
148
143
140
135
130
127
123
119
115
113
111
110
109
109
111
112
114
117
121
124
129
133
137
141
146
150
153
156
158
161
161
162
161
161
158
156
153
149
145
140
136
133
127
123
121
117
114
112
110
109
109
110
111
114
116
120
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
157
154
150
146
142
138
133
129
125
121
118
115
112
110
110
109
110
111
113
115
118
122
126
130
134
139
142
147
151
155
157
160
161
162
162
161
159
157
155
151
148
144
139
135
130
127
123
119
116
113
111
110
109
109
110
112
114
117
121
125
129
132
137
141
146
150
153
156
159
160
162
162
161
160
158
156
153
149
145
141
136
132
127
124
120
117
114
112
110
109
109
110
111
113
116
119
123
127
131
135
140
144
148
152
155
158
161
161
162
162
161
159
157
154
150
146
142
138
133
129
126
122
118
115
113
111
110
109
110
111
113
115
118
121
126
129
134
138
142
147
151
154
157
160
161
162
162
161
159
158
155
152
148
144
139
135
131
127
122
119
116
113
111
110
109
109
111
112
115
117
121
125
128
132
137
141
146
149
153
156
158
161
162
162
161
161
158
156
153
149
145
141
136
132
128
124
121
117
114
112
110
110
109
110
111
114
116
120
123
127
131
136
140
144
148
152
155
158
161
161
162
161
161
159
157
154
150
147
142
139
134
129
125
122
118
115
113
111
110
109
110
111
113
115
118
122
126
129
133
138
143
146
151
155
157
159
161
162
162
161
160
158
155
151
148
144
140
135
130
126
123
120
116
114
111
110
109
110
111
112
114
118
121
125
128
132
137
141
145
149
153
156
158
161
162
162
162
161
158
156
153
149
146
141
136
131
127
124
121
117
114
111
110
109
109
110
111
114
116
120
123
127
131
135
140
144
148
152
155
158
160
161
162
161
161
159
157
154
150
146
142
138
133
129
126
122
118
116
113
111
110
109
110
111
113
115
118
122
126
129
134
138
143
147
151
154
157
160
161
162
162
162
160
158
155
152
148
144
139
135
130
127
123
119
116
113
111
110
109
110
110
112
114
117
121
125
127
132
136
141
145
149
153
156
159
160
162
161
162
161
159
156
153
150
145
141
136
132
127
124
120
117
114
112
110
109
109
110
111
114
116
119
123
127
131
135
140
144
147
152
155
158
160
162
162
161
162
161
154
152
153
144
144
141
131
130
127
119
118
117
111
111
110
108
109
111
112
116
118
121
126
130
134
139
143
146
150
154
157
159
161
163
162
161
160
158
155
152
148
144
140
135
131
127
123
119
116
113
111
110
110
110
111
112
114
117
120
125
127
132
136
141
145
149
153
156
158
161
162
162
162
160
159
156
153
149
145
141
136
132
127
124
120
117
114
111
110
109
110
110
111
113
116
119
123
127
131
135
139
144
148
152
155
158
160
161
162
162
161
159
157
154
150
146
142
138
133
129
126
122
118
115
112
111
110
109
110
111
113
115
118
122
126
129
134
138
143
147
151
154
157
159
161
162
162
161
159
157
155
153
147
144
140
135
131
127
123
119
117
113
111
110
109
109
110
112
114
117
121
125
127
132
137
141
145
149
153
155
159
160
162
162
162
159
159
157
153
149
146
141
136
132
127
124
120
117
114
111
110
109
109
110
111
114
116
119
123
127
131
135
139
144
148
152
155
158
160
161
162
162
161
159
157
154
150
147
142
138
133
129
126
122
118
115
113
111
110
110
110
111
112
115
118
121
126
129
134
138
143
146
151
154
157
159
161
162
162
161
160
158
155
151
148
144
139
135
130
127
123
119
116
113
111
110
109
109
110
111
114
117
120
124
128
134
137
141
145
149
153
156
158
160
162
162
162
160
158
155
153
149
145
141
137
132
127
124
120
117
114
112
110
109
109
110
111
113
116
119
124
127
131
134
140
143
148
153
155
157
160
162
162
162
160
159
158
154
150
147
142
138
134
129
126
121
118
115
113
111
110
109
109
111
112
115
118
122
125
129
133
138
142
147
150
154
158
158
160
162
162
161
161
157
155
152
147
144
140
135
131
127
123
119
116
113
111
110
109
110
111
112
114
117
121
124
128
132
136
141
145
149
153
156
158
161
161
162
161
160
159
156
153
149
146
141
137
132
128
124
120
117
114
112
110
109
109
110
111
114
116
119
123
127
130
135
139
144
148
152
155
158
160
161
162
162
161
160
157
154
150
147
143
138
133
129
126
122
118
115
113
111
110
109
110
111
112
115
118
122
125
129
133
138
142
147
150
154
157
159
161
162
162
161
160
157
155
152
148
144
140
135
131
127
123
120
116
114
111
110
109
110
110
112
114
117
121
124
128
132
136
141
145
149
153
156
158
160
161
162
161
161
158
156
153
149
146
141
137
132
128
124
121
117
114
112
110
109
109
110
112
113
116
119
123
127
131
135
140
144
148
151
155
158
160
161
162
162
161
159
157
154
151
147
142
138
133
129
125
122
118
115
112
111
110
109
109
111
113
115
118
121
126
129
133
139
142
147
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
135
131
127
123
120
116
114
111
110
109
110
110
112
114
117
121
124
128
132
136
141
145
149
153
156
158
160
161
162
161
161
158
156
153
149
145
141
137
132
128
124
121
117
114
112
111
110
110
110
111
113
116
120
123
127
130
135
139
144
148
152
155
158
160
161
162
162
161
159
157
154
150
147
142
138
133
129
126
121
118
115
113
111
110
109
110
111
112
115
118
122
126
129
133
138
143
147
150
154
157
159
161
162
162
161
160
157
155
152
148
144
139
135
130
127
123
120
115
113
111
110
110
110
111
111
115
117
121
124
128
132
136
141
145
149
153
156
158
161
161
162
162
161
159
156
153
149
145
141
136
132
127
124
120
117
114
112
110
110
109
110
111
114
116
119
123
127
131
135
139
143
148
152
155
158
159
161
162
162
161
159
157
154
150
147
142
138
134
129
125
122
118
115
113
110
110
109
110
111
113
115
118
122
126
130
133
138
142
147
151
154
157
159
162
162
162
161
160
158
155
152
148
144
140
135
131
127
123
119
116
114
111
110
109
109
110
112
114
116
120
124
127
132
136
141
145
149
153
156
158
161
161
162
162
163
157
153
155
148
144
144
135
131
130
123
119
119
114
111
111
109
108
110
111
114
116
119
122
127
130
135
140
144
147
152
155
157
160
162
162
161
162
160
157
154
151
147
142
139
133
129
125
122
118
115
113
111
110
109
109
111
112
115
118
121
126
129
134
138
142
147
150
154
157
159
161
162
162
162
160
158
155
153
148
144
140
135
131
127
123
120
116
114
111
110
109
109
110
111
114
117
120
124
127
132
136
140
146
149
153
156
158
161
162
162
161
161
159
156
153
150
145
141
137
132
127
124
121
117
114
112
111
109
109
110
111
113
116
119
123
127
130
135
139
144
148
152
155
158
160
161
162
162
161
159
157
153
152
147
142
138
134
129
125
123
119
115
112
111
110
109
109
111
112
115
118
122
126
129
133
137
142
146
150
154
157
159
161
162
162
161
160
158
155
153
148
144
141
135
130
127
124
119
116
113
111
111
109
109
110
112
114
117
120
124
127
132
136
141
145
149
153
156
159
160
162
162
162
161
158
156
153
150
145
141
136
132
128
124
121
118
114
112
111
109
109
110
111
113
116
119
123
127
130
135
139
143
147
152
154
158
160
162
162
162
161
159
157
154
151
147
143
138
134
129
126
122
118
115
112
111
110
110
110
111
112
115
118
121
126
129
134
138
143
146
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
135
131
127
123
119
116
114
112
109
110
110
110
111
114
117
120
124
127
132
136
141
145
149
152
156
158
160
162
162
162
161
158
156
153
150
146
141
137
132
128
125
121
118
114
112
110
110
108
111
112
112
116
120
123
126
130
135
140
143
147
151
155
157
160
161
162
162
161
159
157
154
151
147
143
138
134
129
126
122
119
115
113
111
110
109
109
111
112
115
117
121
125
130
134
137
141
146
151
154
157
158
161
162
162
161
160
158
155
152
148
145
140
135
131
127
123
119
116
113
111
110
109
109
110
111
114
116
121
124
128
132
135
141
145
150
153
156
158
161
162
162
162
160
159
156
153
150
145
141
137
132
127
124
120
118
115
112
110
109
109
110
111
113
116
119
123
126
131
135
139
143
147
152
155
158
159
161
162
162
161
159
157
154
151
147
143
138
134
129
126
121
119
115
112
111
109
109
109
111
112
115
118
122
126
129
133
138
142
146
150
154
157
159
161
162
162
161
160
158
155
152
147
144
140
135
131
127
123
119
116
113
111
110
109
109
110
112
114
117
120
125
127
132
136
141
145
149
152
156
158
160
161
162
162
161
159
156
154
150
146
141
137
132
128
124
121
117
114
112
110
109
109
110
111
113
115
119
123
126
130
134
139
144
148
151
155
157
160
161
162
162
161
159
157
154
151
147
143
138
134
129
126
122
118
115
113
111
110
109
109
111
112
115
118
122
125
129
133
138
142
146
150
154
157
159
161
162
162
161
160
158
156
152
148
144
140
136
131
127
123
120
116
113
111
110
109
110
110
111
114
117
121
124
127
132
136
141
145
149
153
156
158
161
161
162
161
161
158
156
153
149
145
141
137
132
128
125
121
117
114
112
110
109
109
110
111
113
116
119
123
127
130
134
139
144
148
152
155
157
160
161
162
162
161
160
157
154
150
147
143
139
134
129
126
122
118
115
113
111
110
109
110
111
113
115
118
122
126
129
133
138
142
146
150
154
156
158
161
162
162
161
160
158
155
152
148
144
140
136
131
127
123
120
116
114
111
110
109
109
111
112
114
116
120
124
127
132
136
141
145
149
153
156
158
161
162
162
162
161
158
156
153
150
145
141
137
132
128
125
121
117
115
112
111
110
110
110
111
113
115
119
123
127
130
135
140
144
148
151
155
158
160
161
162
162
162
159
157
155
151
147
143
139
134
130
126
122
119
115
113
111
110
109
110
111
112
115
118
121
125
129
133
138
142
146
150
154
157
159
160
163
165
159
159
161
153
153
151
142
141
138
129
127
125
119
116
115
110
109
109
109
110
111
113
117
121
124
128
132
135
140
145
148
152
156
158
160
161
162
162
161
158
156
153
150
146
142
137
132
129
125
122
117
115
112
111
110
109
110
111
113
116
119
122
127
130
134
139
144
147
152
154
157
160
161
162
162
161
159
157
155
151
147
143
139
134
130
126
122
119
115
113
111
110
109
110
110
112
114
118
121
125
129
133
138
142
146
150
154
157
159
161
162
162
161
160
158
156
152
149
144
140
136
131
127
123
119
116
113
111
110
109
109
110
111
114
117
120
124
127
131
136
140
145
149
153
156
158
160
161
162
162
161
159
157
153
150
146
141
136
132
129
125
120
118
115
111
110
109
110
110
111
114
116
119
122
127
130
135
139
143
147
151
155
157
159
161
162
162
161
159
157
154
151
147
143
138
134
130
125
122
119
114
112
111
110
109
110
110
113
115
118
121
126
129
133
138
142
146
150
154
156
159
161
162
162
161
160
158
155
152
149
144
140
135
131
127
124
119
116
114
111
110
109
110
110
111
114
117
120
124
127
131
136
140
145
148
153
155
158
160
162
162
161
161
158
156
153
150
145
141
137
132
128
125
121
118
115
112
111
110
110
110
111
113
116
119
122
127
130
135
139
143
147
152
155
157
160
161
162
161
162
159
156
155
152
146
142
139
134
130
125
122
119
115
112
111
110
110
110
110
112
115
118
121
126
129
133
137
142
146
150
154
157
159
161
162
162
161
160
158
155
152
149
144
139
136
132
127
124
119
117
114
111
110
109
109
110
112
114
117
120
124
127
131
136
141
145
149
153
155
158
160
162
162
162
161
159
156
153
150
146
142
137
133
128
125
121
117
114
112
111
109
109
109
111
113
115
119
122
127
130
134
139
144
147
151
154
157
159
161
162
162
161
159
157
154
151
147
143
138
134
130
126
122
118
115
112
111
109
109
109
111
112
115
118
121
126
129
133
138
142
146
150
153
157
159
161
162
162
161
160
158
155
152
148
144
140
135
131
127
123
119
116
113
111
110
109
109
110
111
114
117
120
124
127
131
136
141
145
149
152
156
158
160
161
162
162
160
159
156
153
149
146
142
138
133
127
125
121
118
115
112
110
110
109
110
111
113
116
119
123
127
130
134
139
143
148
151
155
158
159
161
162
162
161
159
157
153
151
148
144
138
134
129
127
122
119
116
112
111
110
110
109
110
112
115
118
121
125
128
133
137
142
146
150
153
157
159
161
162
162
162
159
158
155
152
148
145
140
135
131
127
123
120
117
114
112
110
109
109
111
111
114
117
120
124
127
132
136
140
144
149
152
156
158
161
161
162
161
161
159
156
154
149
146
141
137
132
128
125
121
118
114
113
110
110
109
109
111
113
115
119
123
127
131
134
139
143
148
152
155
157
159
161
162
162
161
160
157
154
151
147
143
139
134
130
126
122
119
115
113
111
110
109
109
111
112
115
118
121
125
129
133
138
142
146
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
136
131
127
123
120
116
114
111
110
109
109
111
111
114
116
120
124
127
132
136
141
145
149
152
156
158
160
162
162
162
160
159
156
153
149
145
141
137
132
128
125
120
118
114
113
111
110
109
110
111
113
116
119
123
126
130
134
139
143
148
152
155
157
159
161
162
162
161
160
157
154
151
147
143
139
134
130
126
122
118
115
113
111
109
109
110
111
112
115
118
122
125
129
133
138
142
146
150
153
157
159
161
162
162
162
159
158
155
152
148
145
140
135
131
127
123
120
117
114
111
110
110
109
111
111
114
116
120
124
127
132
136
141
145
149
153
156
158
160
162
162
162
161
159
156
153
149
145
141
137
132
128
125
121
118
115
113
110
110
109
110
111
113
116
119
122
127
130
134
139
143
147
151
154
157
159
161
165
160
158
162
155
154
154
146
142
141
132
129
127
121
118
116
111
110
110
109
110
111
111
115
118
120
125
130
132
137
142
146
150
154
156
159
160
162
162
161
160
158
156
152
149
144
140
135
131
127
123
120
116
114
111
110
109
109
110
112
114
116
120
123
127
131
136
140
145
148
152
155
158
160
161
162
162
161
159
156
153
150
146
142
137
133
128
125
121
117
115
112
110
109
109
110
111
113
115
119
122
126
130
134
139
143
147
151
154
157
159
161
162
162
161
159
157
154
150
147
144
139
134
129
125
122
119
116
113
110
109
109
110
111
112
114
118
121
125
128
133
137
142
146
150
153
156
159
160
162
162
161
160
158
155
152
149
145
141
135
131
127
124
120
117
114
111
110
110
110
109
112
114
116
120
123
127
132
136
140
145
148
153
155
158
160
161
162
161
161
159
157
153
150
146
142
137
133
128
125
121
118
114
112
111
110
109
109
111
112
115
118
123
126
130
134
138
143
147
151
154
157
159
161
162
161
162
159
158
154
151
147
144
139
135
130
127
122
119
116
113
111
109
109
110
111
112
115
118
121
125
128
133
137
142
145
150
153
156
158
160
162
162
161
160
158
155
153
149
145
140
136
132
127
124
120
117
114
112
110
109
109
110
111
114
116
120
124
127
131
137
140
144
149
153
156
158
159
162
162
162
161
159
156
153
150
145
141
137
133
128
125
121
117
115
113
110
110
109
110
111
113
116
119
122
126
130
134
139
144
146
151
155
157
159
161
162
162
161
159
158
154
151
147
143
139
134
131
126
123
118
115
113
111
109
109
109
111
112
114
118
121
125
128
133
137
141
146
150
154
156
159
161
162
162
161
160
158
155
152
149
145
140
136
132
127
124
120
117
114
112
110
109
110
110
111
114
117
120
123
127
132
136
141
145
148
152
155
158
160
161
162
162
161
159
156
153
150
146
142
137
133
128
125
121
118
114
112
111
110
110
110
111
113
116
119
123
126
129
134
138
143
147
151
154
157
159
161
162
162
161
159
157
154
151
148
143
139
135
130
127
122
119
115
113
111
110
109
110
111
112
115
117
121
124
128
132
137
142
145
150
153
157
159
161
162
162
162
161
158
156
152
149
145
140
136
131
127
124
120
117
114
112
110
109
109
110
111
113
116
120
123
127
131
136
140
144
149
152
156
158
160
161
162
162
161
159
156
154
150
146
142
137
133
128
125
121
118
114
113
111
110
110
109
111
112
116
118
123
126
130
134
139
143
147
151
154
157
159
161
162
162
161
159
158
155
152
147
143
139
134
129
126
122
119
116
113
111
110
109
109
111
112
115
117
121
125
128
133
137
141
146
150
153
156
158
161
162
162
162
160
158
155
152
148
145
140
136
131
127
124
120
117
114
111
110
109
109
110
111
114
116
120
124
127
131
135
140
144
148
152
156
158
161
161
162
162
161
159
156
153
150
146
142
137
132
128
126
121
118
114
112
111
110
109
109
111
113
115
118
122
126
130
134
139
143
147
151
155
157
159
161
161
162
161
159
157
154
151
147
143
138
134
130
126
122
119
115
113
111
109
109
109
111
112
115
117
121
125
128
132
137
142
146
150
153
157
159
161
162
162
161
160
158
155
152
148
145
140
136
131
127
124
120
116
114
111
110
109
109
110
111
114
116
120
123
127
131
136
140
144
148
152
156
158
161
161
162
161
160
159
156
154
150
146
142
137
133
129
125
121
117
114
113
110
110
109
110
111
113
116
119
123
126
130
134
138
143
148
151
155
157
160
161
162
162
161
160
157
155
151
148
143
139
134
130
126
122
119
115
113
111
110
109
110
110
112
114
118
121
125
129
132
137
142
146
149
153
156
159
161
162
162
161
161
158
155
152
149
145
140
136
132
127
124
120
116
114
112
110
109
109
110
111
114
116
120
123
127
131
135
140
144
148
152
155
158
163
160
159
164
159
158
160
152
149
149
140
137
135
128
125
123
117
114
113
111
110
109
109
111
114
115
119
123
126
129
134
139
143
147
151
154
157
159
161
162
162
161
160
157
155
151
148
143
139
134
130
127
123
119
116
114
111
110
110
110
111
112
115
118
121
125
128
133
138
141
146
149
153
156
159
161
162
162
161
160
158
156
152
149
145
141
136
132
127
124
120
117
114
111
111
109
109
110
111
114
116
120
123
127
131
136
140
144
148
152
156
158
161
162
162
162
161
159
157
154
150
146
142
138
133
129
125
121
117
115
113
111
110
109
109
111
113
115
119
122
127
130
134
139
143
147
151
154
157
159
161
162
162
161
160
157
155
151
147
143
139
135
130
127
122
119
115
113
111
110
109
110
111
112
114
118
122
124
127
133
138
141
146
150
154
156
158
161
162
162
161
161
158
156
152
148
145
140
136
132
127
124
120
117
114
111
111
109
110
111
110
113
117
120
123
127
132
135
140
144
149
152
155
158
161
161
162
162
161
159
156
154
149
146
143
139
133
128
125
121
118
115
112
110
109
110
110
111
113
116
119
122
126
130
134
138
143
147
151
155
157
159
161
162
162
161
160
157
154
152
148
144
140
134
130
127
122
120
116
112
111
111
109
110
110
112
115
117
120
125
128
132
137
141
146
150
153
156
159
160
162
162
162
160
158
156
152
149
144
140
136
131
127
124
119
116
115
111
109
109
110
110
111
114
116
120
123
127
131
135
140
144
148
152
156
158
160
161
162
162
161
158
157
153
150
146
141
138
133
129
125
121
117
115
113
110
110
109
110
111
113
116
119
122
126
130
134
138
143
147
151
155
157
160
160
162
162
161
159
158
155
152
148
143
139
134
130
126
123
119
116
113
111
110
109
110
111
112
114
117
121
125
129
132
137
141
146
150
153
156
158
161
162
162
161
160
158
156
152
149
144
141
136
132
127
124
120
117
114
111
110
109
109
110
111
114
116
120
123
127
131
135
139
144
148
152
155
158
160
161
162
162
161
158
157
153
150
146
142
138
133
129
125
122
118
115
112
111
110
109
110
111
112
115
118
122
126
130
134
139
142
147
151
154
157
159
161
162
162
162
159
158
155
151
147
143
139
134
130
127
123
119
116
113
111
110
109
109
110
112
114
117
120
125
127
132
137
141
145
149
153
156
159
160
162
162
162
160
159
156
153
149
144
141
136
132
127
124
120
117
114
111
110
109
109
110
111
113
116
119
123
127
131
135
140
144
148
152
155
158
160
161
162
161
161
159
157
153
150
146
142
137
133
129
125
122
118
115
112
110
110
109
110
111
112
115
119
122
126
130
134
138
143
147
150
154
157
160
161
162
161
161
159
158
155
152
148
143
139
135
130
126
122
119
116
113
111
110
109
110
111
112
115
117
121
125
128
132
137
141
145
150
153
156
159
160
162
162
162
160
158
156
152
149
144
141
136
131
127
124
120
117
114
112
110
109
110
110
112
114
116
120
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
157
154
150
146
142
138
133
129
125
122
118
115
112
111
109
109
110
111
113
115
118
122
126
130
134
139
143
146
151
154
157
159
161
162
162
161
159
158
154
152
147
144
139
135
130
127
123
119
116
113
111
109
109
109
110
112
114
117
121
125
128
133
137
141
145
149
153
156
158
160
162
162
162
161
158
156
153
149
145
141
136
132
127
124
120
117
114
111
110
109
110
110
112
113
117
119
123
127
131
135
140
144
148
152
155
158
159
161
162
162
161
159
157
154
150
146
142
137
134
129
125
121
118
115
111
111
109
109
110
111
112
115
118
123
126
129
134
139
143
147
151
154
157
159
161
162
162
161
160
158
155
152
148
144
139
134
131
126
123
119
116
113
111
110
109
110
111
112
114
119
122
122
127
134
134
143
147
147
154
158
156
161
163
161
162
161
157
155
153
149
145
141
135
132
127
124
121
118
113
111
110
109
109
110
111
113
116
120
124
127
131
135
140
144
148
152
155
158
160
162
162
162
161
159
157
154
150
147
143
138
133
129
125
121
118
115
113
110
110
109
109
111
112
115
118
122
126
129
134
138
143
147
151
154
157
159
161
162
162
161
159
157
155
151
148
144
139
135
130
127
123
119
116
113
111
110
109
109
111
111
114
117
120
124
127
132
137
141
145
150
153
156
158
161
162
162
162
160
158
155
152
149
145
140
136
132
127
124
120
117
114
111
110
109
109
110
111
113
117
120
123
127
131
135
140
144
148
152
155
158
160
162
162
162
161
159
156
154
150
146
142
138
134
129
126
121
118
115
112
111
109
109
110
111
113
116
118
123
126
129
134
139
143
146
151
154
157
158
161
162
162
161
160
158
155
151
148
144
139
135
130
127
123
119
116
113
111
110
109
109
111
112
114
117
121
124
127
133
137
140
145
150
152
156
158
161
162
162
162
160
159
156
153
149
144
141
136
131
127
124
120
117
114
111
110
109
109
110
111
113
116
119
124
127
130
135
141
144
147
152
155
158
159
161
162
162
160
159
157
154
150
147
142
137
133
129
126
121
118
115
112
111
109
109
109
111
113
115
118
122
126
129
134
138
144
147
150
154
158
159
161
162
162
162
160
157
155
152
148
144
139
135
130
127
123
119
116
113
111
110
109
109
111
112
114
117
120
124
127
132
136
141
145
150
153
156
159
161
162
162
162
160
159
156
153
149
145
140
136
132
127
124
120
117
114
112
110
109
109
110
111
114
116
119
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
156
154
150
146
142
137
133
129
125
121
118
115
112
110
109
110
110
111
111
114
118
122
126
129
133
138
143
147
151
154
157
159
161
161
162
161
160
157
155
152
147
144
139
135
130
127
123
119
116
113
111
110
109
109
110
111
115
117
121
124
127
132
136
141
145
150
153
156
158
161
162
162
162
160
158
156
153
150
145
140
135
132
127
125
120
117
114
112
110
109
109
110
111
114
116
119
123
127
131
135
140
144
148
152
155
158
159
161
162
162
161
159
157
155
151
146
142
138
134
129
126
121
118
115
113
111
110
109
109
111
113
115
118
122
126
129
134
138
143
147
151
154
157
159
161
161
162
161
159
157
155
151
147
144
139
135
130
127
123
119
116
113
111
110
110
109
111
111
114
117
120
124
127
132
137
142
145
149
153
157
159
161
161
161
162
161
158
155
153
149
145
140
136
132
127
124
120
117
114
112
110
110
109
110
111
114
116
119
123
127
132
135
139
143
148
152
155
158
159
161
162
162
161
159
157
154
150
147
142
138
133
129
125
121
118
115
112
110
110
109
110
111
112
115
118
122
126
130
133
138
142
147
150
154
157
159
161
162
162
161
160
157
155
152
147
144
139
135
130
127
123
120
116
114
111
110
109
109
111
111
115
117
121
124
127
132
136
141
145
149
153
156
158
161
162
162
161
160
158
156
153
149
145
141
137
132
128
124
120
117
114
112
110
109
109
110
111
114
116
119
123
127
131
135
140
144
147
152
155
158
160
161
162
162
161
159
157
154
151
147
142
138
133
130
125
122
118
115
113
111
110
109
110
111
113
115
118
122
126
129
134
138
142
147
150
154
157
159
161
162
162
161
160
157
155
151
148
144
139
135
131
127
123
119
116
114
111
110
109
110
110
111
114
117
120
124
128
132
137
141
145
149
153
156
159
160
162
162
162
160
158
156
153
150
145
141
136
132
128
124
121
117
114
112
111
110
110
110
111
113
116
119
123
127
130
135
140
144
148
152
155
158
160
161
162
162
161
159
157
154
150
147
142
138
133
129
125
121
118
114
112
112
111
106
110
112
110
117
121
119
127
131
131
139
144
145
151
155
156
159
161
162
163
161
159
158
155
151
149
144
139
134
130
127
123
119
116
113
111
111
109
110
111
112
114
117
121
124
128
132
137
141
145
149
153
156
158
161
162
162
161
161
158
156
152
149
145
141
136
132
128
124
121
117
114
112
111
109
109
110
111
113
116
119
123
127
131
135
140
144
148
152
155
157
160
161
162
161
161
159
157
154
151
147
142
138
133
129
125
122
118
115
113
110
110
109
110
111
113
115
119
122
126
129
134
138
143
147
150
155
157
159
161
162
162
161
160
158
155
152
148
144
139
135
131
127
123
119
116
113
111
110
109
110
110
112
114
117
120
124
127
132
137
141
146
149
153
156
159
161
161
162
162
161
158
156
153
149
145
141
136
132
127
124
121
117
114
112
111
109
109
110
111
113
116
119
123
127
131
136
139
144
148
151
156
158
159
161
162
162
161
159
157
154
150
146
142
138
133
129
125
122
118
115
112
111
110
109
110
111
113
114
118
122
126
129
133
138
142
146
151
155
156
158
161
162
162
162
160
158
155
151
148
144
139
136
131
126
124
120
116
114
111
110
110
110
110
112
114
117
121
124
127
132
137
141
145
149
153
156
158
161
162
162
161
161
158
156
153
149
145
141
135
132
128
124
120
118
114
111
110
109
110
110
111
113
116
119
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
157
154
151
146
143
138
133
129
125
122
118
115
112
111
109
110
109
111
113
115
118
122
126
129
134
138
143
147
150
154
157
159
161
162
162
162
160
158
155
152
148
144
140
135
131
127
123
119
116
113
111
110
109
109
110
112
114
117
120
124
127
132
137
141
145
149
153
156
158
161
161
162
162
160
158
156
153
149
145
141
136
132
127
124
121
117
114
112
110
109
110
110
112
114
116
119
123
127
131
135
139
144
147
152
155
157
160
161
162
162
161
159
157
154
151
147
143
138
134
129
126
122
118
115
112
111
109
109
110
111
112
115
118
122
126
129
133
138
143
146
150
154
157
160
161
162
162
161
160
158
155
152
148
144
140
135
131
127
124
119
116
113
111
110
109
109
110
112
114
117
120
125
127
132
137
141
145
150
153
156
159
160
162
162
162
161
159
156
153
149
145
141
136
132
127
124
120
117
114
112
111
109
110
110
111
113
116
119
123
127
131
135
139
144
147
152
154
158
159
162
162
162
161
159
157
154
151
147
142
138
133
129
126
122
118
115
112
111
109
110
109
111
112
116
118
122
126
129
134
138
143
147
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
135
131
127
123
120
116
114
111
110
109
110
110
112
114
117
120
125
127
132
136
141
145
149
153
156
158
161
162
162
162
161
159
156
153
149
145
141
137
132
128
124
121
117
114
112
110
110
109
110
111
113
117
119
123
127
131
135
139
144
148
152
155
158
159
162
162
162
161
159
157
154
151
146
143
138
134
129
126
122
118
115
113
111
110
109
110
111
112
115
117
121
127
130
134
137
142
146
151
154
157
159
162
162
162
161
159
158
155
152
148
144
139
135
131
127
123
119
116
114
111
110
109
109
111
112
114
117
121
125
128
132
136
141
145
150
153
156
158
160
162
162
161
160
159
156
153
150
146
141
137
133
128
124
121
118
114
112
111
110
109
110
111
113
116
119
123
127
131
135
140
144
147
152
155
158
160
161
162
162
161
159
157
154
151
147
143
138
134
129
126
122
119
115
113
111
110
110
110
111
112
115
118
122
125
129
133
138
142
146
151
154
157
159
161
162
162
161
160
158
155
152
148
144
139
135
131
127
123
119
116
113
111
110
110
109
111
111
115
117
120
124
127
132
136
141
145
149
152
156
158
161
161
162
162
161
159
156
153
149
146
141
136
134
130
122
120
119
111
113
113
107
110
111
109
114
118
118
123
127
129
135
140
144
148
151
154
158
160
161
163
163
160
159
157
154
151
147
143
138
133
129
126
121
118
115
113
111
110
109
109
111
112
115
118
122
125
129
133
138
142
146
150
154
157
159
161
162
163
161
159
158
155
152
148
144
140
136
131
127
123
120
116
113
111
110
109
109
111
111
114
117
120
124
128
132
136
141
145
149
152
156
158
161
161
162
162
161
158
156
153
149
146
141
137
132
128
124
121
118
114
112
111
109
109
110
111
113
116
119
123
127
131
134
139
144
148
152
155
157
160
161
162
162
161
159
157
155
151
147
143
138
133
129
126
122
118
115
113
111
109
109
109
111
112
115
118
121
125
129
133
138
142
147
151
154
157
159
161
162
162
161
160
158
155
152
148
144
140
135
131
127
123
120
116
113
111
110
109
109
110
111
114
117
120
124
127
132
136
141
145
149
153
156
158
161
161
162
162
161
158
156
153
149
145
141
137
132
128
124
121
117
114
112
110
109
109
110
111
113
116
120
122
126
131
135
139
144
148
152
155
157
160
162
163
162
161
159
157
155
150
147
143
139
133
129
126
122
118
115
113
111
110
110
110
111
113
115
119
121
125
128
134
139
141
146
151
154
157
159
161
162
162
161
160
158
155
152
148
144
140
136
131
127
123
120
116
114
111
110
109
109
110
112
114
117
120
124
128
132
137
140
145
149
153
156
158
160
161
162
162
161
158
156
154
150
146
141
137
132
128
124
121
117
115
112
110
110
109
110
111
114
115
120
123
127
130
134
139
144
148
152
155
157
160
161
162
162
161
159
157
155
151
147
143
138
134
129
126
122
119
115
113
111
110
109
110
111
112
115
118
122
125
129
133
138
142
147
150
153
157
159
161
162
162
162
160
157
156
152
148
144
140
135
131
127
123
120
116
114
111
110
109
109
110
112
114
117
120
124
128
132
136
141
145
149
153
155
158
160
162
162
162
161
159
156
153
150
146
141
137
132
128
124
121
118
114
112
111
109
109
110
111
113
116
119
123
127
130
134
139
143
148
152
155
157
160
161
162
162
161
159
157
154
151
147
143
139
134
129
126
122
118
115
113
111
110
109
110
110
112
115
118
122
125
129
133
138
142
146
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
136
131
127
123
119
116
113
111
110
109
109
110
111
114
117
120
124
127
131
136
141
145
148
153
156
158
160
161
162
161
161
159
157
153
150
145
141
137
132
128
125
121
117
115
112
110
109
109
110
111
113
116
119
122
127
130
134
139
143
148
152
155
157
160
161
162
162
161
159
157
155
151
147
142
138
134
129
126
123
118
116
113
111
110
109
110
110
113
114
118
121
126
129
133
138
142
146
150
154
156
159
160
162
162
161
161
158
155
152
149
144
140
136
131
127
123
120
116
114
111
110
109
109
110
112
114
117
120
124
127
132
137
140
145
149
153
156
158
160
161
162
162
161
158
156
153
150
146
142
137
132
128
124
121
117
115
112
111
109
109
110
111
113
116
119
123
127
130
134
139
144
147
152
155
157
160
161
162
162
161
159
157
154
151
147
143
139
134
129
126
122
118
116
113
111
110
109
110
111
112
115
118
121
125
128
133
137
142
146
150
154
156
159
161
162
162
161
160
158
155
152
149
144
140
135
131
127
123
120
116
114
111
110
109
110
110
112
114
117
120
124
127
131
136
140
145
148
152
156
158
161
162
162
161
161
159
157
153
150
146
141
137
132
128
125
121
118
115
112
110
109
109
110
111
113
116
119
122
127
131
135
139
143
147
152
155
157
159
161
162
162
161
159
157
154
151
147
143
138
134
130
126
122
118
115
113
111
110
109
110
111
112
114
118
121
126
129
133
137
142
147
150
154
156
158
161
162
162
161
160
161
155
149
151
143
139
139
130
126
126
119
115
116
111
110
110
108
109
112
114
117
120
123
128
132
136
141
146
148
152
156
159
160
162
162
161
161
158
157
154
150
146
141
137
133
128
125
121
117
114
112
111
110
109
110
111
113
116
119
123
127
130
135
139
143
147
152
155
158
160
161
162
162
161
159
158
154
151
147
143
139
134
130
126
122
118
116
113
111
110
109
110
111
112
115
118
121
126
129
133
138
142
147
150
154
157
159
161
162
162
162
159
158
155
152
148
144
140
135
131
127
124
119
117
114
111
110
109
110
110
112
114
117
120
124
127
132
136
140
145
149
153
156
158
160
161
162
162
160
158
156
153
150
146
141
137
133
128
125
121
118
114
112
110
109
109
109
111
113
116
119
123
126
130
135
139
144
148
151
155
158
160
161
162
162
161
159
157
154
151
147
143
138
134
129
126
123
119
116
113
111
110
109
109
111
112
115
118
121
125
128
133
137
142
146
150
153
157
159
160
162
162
162
160
158
155
153
148
143
141
136
131
127
124
119
117
113
111
111
109
109
111
112
114
117
120
124
127
132
135
140
144
148
153
155
158
160
162
162
162
161
158
156
154
149
145
141
138
133
127
125
121
118
114
112
111
109
110
109
111
113
116
119
123
126
130
134
139
143
148
151
155
157
159
161
162
162
161
159
157
154
151
147
143
138
134
130
126
122
119
115
113
111
109
109
109
111
112
115
118
121
125
128
133
137
142
146
150
153
157
158
161
162
162
161
160
158
155
152
149
145
140
136
131
127
124
120
116
114
111
110
109
109
110
111
114
117
120
124
127
132
136
141
144
149
152
156
158
161
162
162
162
161
159
156
154
150
145
141
137
132
128
125
121
118
114
112
111
110
109
110
111
113
116
118
122
126
131
134
139
143
147
152
155
158
159
161
162
162
161
160
157
154
151
147
143
138
134
129
126
122
119
115
113
111
110
109
110
111
112
115
117
121
126
129
134
137
141
146
151
154
157
158
161
162
162
161
159
158
155
152
148
145
140
136
131
127
123
120
116
114
111
110
109
109
111
112
114
116
120
125
128
131
135
140
145
149
153
156
158
160
162
162
162
160
159
156
154
150
146
141
137
132
128
125
121
118
115
112
110
110
109
110
111
113
115
119
123
127
130
134
139
143
147
151
155
157
160
161
161
162
161
160
157
155
151
147
143
138
134
130
126
122
119
115
113
111
110
109
110
111
112
115
118
121
125
129
133
138
142
146
150
153
157
159
161
162
162
161
160
158
156
152
148
144
140
136
131
127
123
120
116
114
111
110
109
109
110
112
114
117
120
124
127
131
136
140
144
149
152
156
158
161
162
162
162
161
159
156
153
150
145
141
137
132
129
124
121
118
115
112
110
110
109
110
111
113
115
119
122
127
130
134
139
143
148
151
155
157
160
161
162
162
161
160
157
154
151
147
143
139
134
130
126
122
119
115
113
111
110
109
109
110
112
114
118
121
125
129
132
137
142
146
150
154
157
159
161
162
162
162
160
158
156
152
149
144
140
135
131
127
123
120
116
114
111
110
109
109
110
111
114
116
120
124
127
131
136
140
145
148
152
156
158
161
161
162
162
161
159
157
153
150
146
141
137
133
128
125
121
117
114
112
111
110
109
110
111
113
115
119
122
127
130
135
139
143
147
151
155
157
160
161
162
161
161
159
157
155
151
148
143
139
134
130
126
122
119
115
113
111
110
109
110
110
112
115
118
121
126
129
133
138
142
146
149
154
156
159
160
162
162
162
160
158
155
152
149
144
140
136
131
127
124
120
116
114
111
110
109
109
110
111
113
117
120
124
127
132
135
140
145
148
152
156
159
161
162
162
161
161
158
156
154
150
145
141
137
133
129
125
121
117
115
112
111
109
109
110
111
112
116
119
122
127
130
135
138
144
147
151
154
161
159
158
164
160
160
163
156
153
154
147
142
141
134
130
127
122
117
116
113
111
110
109
110
111
112
115
119
121
125
128
133
137
142
146
150
153
156
159
160
162
162
161
160
158
156
152
149
144
140
135
131
127
124
120
116
114
111
111
109
110
110
111
114
117
119
124
127
132
136
140
144
148
153
156
158
160
162
162
162
160
159
156
154
150
146
141
137
133
128
125
121
118
115
112
111
109
109
110
111
112
115
118
123
127
130
134
138
143
147
152
154
157
159
161
162
162
161
159
157
154
151
147
143
138
134
129
126
122
119
115
113
111
110
110
109
111
112
114
118
121
125
128
133
137
142
145
150
154
156
158
161
162
162
161
160
158
156
153
148
145
140
136
131
127
124
120
116
114
111
110
109
109
110
111
114
117
120
124
127
131
136
140
145
148
152
155
158
160
162
162
162
160
159
156
153
150
146
142
137
133
128
125
121
118
114
112
110
110
109
110
111
113
116
119
123
125
130
135
139
142
147
151
154
157
159
161
162
162
161
159
157
155
151
148
144
138
134
131
126
122
119
116
113
110
110
109
110
110
112
115
117
121
125
128
132
138
142
145
150
154
156
159
160
162
162
161
160
158
156
152
149
144
140
137
131
127
124
121
116
114
111
110
110
109
110
111
114
116
120
123
127
131
136
140
144
149
152
156
158
160
161
162
161
161
158
156
153
150
146
142
137
133
129
125
121
118
115
112
111
110
109
110
111
113
115
119
122
126
130
134
139
143
147
151
155
157
160
161
162
161
161
159
157
155
152
148
143
139
134
130
126
122
119
116
113
111
110
109
109
110
112
114
117
121
125
128
133
137
142
145
149
153
156
159
160
162
162
161
160
158
156
152
149
144
141
136
132
127
123
120
116
114
111
110
109
110
110
111
113
116
120
123
127
131
136
140
145
148
152
155
158
161
162
162
161
161
159
156
153
150
146
142
137
133
128
125
121
118
115
112
110
109
109
109
111
113
115
119
122
127
130
134
139
143
147
151
155
157
160
161
162
161
161
159
157
155
151
147
143
139
134
130
126
122
118
115
112
111
110
109
109
111
112
115
118
121
125
128
133
137
141
146
150
153
156
159
161
161
162
161
160
158
156
152
149
144
140
135
131
127
123
120
116
114
111
110
109
109
110
112
114
117
120
124
127
131
136
140
144
149
153
155
158
159
161
162
161
161
158
156
153
150
146
142
137
133
128
125
121
118
115
112
111
109
109
109
111
113
115
118
122
126
131
134
138
142
147
152
155
157
159
161
162
162
161
159
157
155
152
148
144
139
135
130
127
122
119
116
113
111
110
109
109
111
111
114
117
121
125
128
132
136
141
146
150
153
157
158
161
162
162
161
160
158
156
153
149
145
140
136
131
127
124
120
117
114
112
110
109
109
110
111
114
116
120
123
127
131
135
140
144
148
152
155
158
160
161
162
161
161
159
156
154
150
146
142
137
133
129
125
121
118
115
112
111
109
109
110
111
113
115
119
122
126
130
133
138
142
147
151
154
157
160
161
162
162
161
160
157
155
151
148
144
139
134
130
127
122
119
116
113
111
110
109
110
110
112
114
118
121
125
129
132
137
141
146
150
153
156
158
161
161
162
161
160
158
156
153
149
144
140
136
131
127
124
120
116
114
111
110
109
109
110
111
114
116
120
123
127
131
135
140
144
148
152
156
158
161
161
162
162
161
158
157
154
150
146
142
137
133
129
125
121
117
114
112
110
110
109
110
111
113
115
119
122
126
130
134
139
143
148
151
154
157
159
161
162
162
161
160
157
155
151
148
143
139
135
130
127
122
119
115
113
111
110
109
110
111
112
115
117
121
124
128
132
137
141
145
149
153
156
159
161
162
162
161
160
158
156
152
149
144
140
136
132
127
124
120
116
114
111
111
110
110
110
111
114
117
120
123
127
133
137
136
145
149
149
158
159
158
163
163
159
163
159
155
154
150
144
142
138
133
130
124
121
119
115
112
111
110
108
110
111
112
115
119
122
126
129
134
139
143
147
151
154
157
160
161
162
162
161
160
157
155
152
147
143
139
134
130
126
122
119
116
113
111
110
109
110
110
112
115
118
121
125
128
133
137
142
146
150
153
156
159
160
162
162
162
160
158
156
152
149
144
141
136
132
127
124
120
117
114
111
110
109
110
110
111
114
116
120
123
127
131
136
140
144
148
152
155
158
160
162
162
162
161
158
157
153
150
146
142
137
133
128
125
121
118
115
112
111
109
110
110
111
113
115
118
122
126
130
134
139
143
147
151
154
157
159
161
162
162
161
159
158
154
151
147
144
140
135
130
126
123
119
116
113
111
110
110
109
111
112
115
118
121
125
128
133
137
141
146
150
153
156
158
161
162
162
162
160
158
155
153
150
145
141
136
131
127
125
121
117
114
111
111
110
109
110
111
113
116
120
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
157
154
150
146
143
137
133
129
125
121
118
114
113
111
109
110
109
111
113
116
119
123
126
130
134
139
143
147
151
154
157
159
161
162
162
161
160
158
154
151
148
144
138
134
131
126
122
118
116
113
111
109
109
109
111
112
114
117
121
125
128
133
137
142
146
150
153
156
158
161
162
162
162
160
158
156
153
149
145
140
136
131
127
124
120
117
114
112
110
109
109
110
111
113
117
120
123
127
131
135
140
144
149
152
155
158
160
161
162
162
161
159
156
154
150
146
142
137
133
128
125
121
118
115
113
110
109
109
109
111
113
115
119
122
126
130
134
138
142
147
151
154
157
159
161
162
162
161
160
157
155
151
148
143
139
134
130
127
122
119
115
113
111
110
109
109
111
112
115
117
121
124
128
132
137
141
146
150
153
156
158
161
162
162
162
160
158
156
152
149
145
140
136
132
127
124
120
117
114
111
110
109
109
110
111
113
116
120
123
127
131
136
140
144
148
152
155
158
161
161
162
162
161
158
157
153
150
146
142
138
133
129
125
122
118
115
112
111
110
109
110
111
113
115
118
121
126
130
134
139
143
147
151
154
157
159
161
162
162
161
159
157
154
151
148
144
140
134
131
127
123
119
116
113
111
109
109
109
111
112
114
117
120
125
128
133
137
141
146
149
153
156
158
161
162
162
161
160
158
156
152
149
144
141
136
132
127
124
120
117
114
111
110
109
109
110
111
114
116
120
123
127
131
136
140
144
148
153
155
158
160
162
162
162
161
159
157
154
150
146
142
137
133
129
125
121
118
115
112
111
109
109
109
111
112
115
118
122
126
129
134
138
143
147
151
154
157
159
161
162
162
161
159
158
155
151
148
143
139
135
130
127
122
119
116
113
111
110
109
109
110
112
115
118
121
125
127
132
137
141
145
150
153
156
158
160
162
162
162
160
158
156
152
149
145
141
137
131
127
124
120
117
114
111
110
110
109
110
111
114
116
119
124
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
157
154
150
147
143
137
132
129
126
122
118
115
112
110
109
109
110
111
113
115
118
122
126
130
134
139
143
147
151
154
157
159
161
162
162
161
160
157
155
152
148
144
139
134
130
127
122
119
116
113
111
110
109
109
111
112
114
117
121
124
128
132
137
141
145
150
153
156
158
161
161
162
161
160
158
156
153
149
145
141
136
131
127
124
121
117
114
111
110
110
109
110
111
113
117
120
124
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
156
154
150
147
142
137
133
129
125
121
118
115
113
111
110
109
111
111
113
116
118
122
126
130
134
138
143
147
151
155
157
159
161
162
162
161
160
158
155
151
148
144
139
135
130
127
122
119
115
113
111
110
109
109
112
114
111
117
122
122
130
135
135
142
147
147
155
157
158
161
162
161
161
161
158
157
152
148
147
141
136
133
128
123
120
117
114
111
110
109
108
110
111
114
116
120
123
127
131
136
140
144
148
152
155
158
160
161
162
161
161
159
156
154
150
146
142
138
133
129
125
122
118
116
112
111
109
109
110
111
113
115
119
122
126
129
134
138
143
147
151
155
157
160
161
162
162
162
160
158
155
152
148
144
139
135
130
127
123
119
116
113
111
110
109
110
111
113
114
117
121
125
127
132
136
141
146
149
153
156
159
160
162
162
162
160
158
156
153
150
145
141
136
132
127
124
120
117
114
111
110
109
109
110
111
113
116
119
123
127
131
135
140
144
148
152
155
158
160
161
162
161
161
159
157
154
151
146
142
137
133
129
125
122
118
115
112
111
109
109
110
111
113
116
119
121
125
130
134
137
143
147
151
154
157
159
161
162
161
162
159
158
155
152
148
144
139
135
131
127
123
119
116
113
111
109
109
109
110
112
114
118
121
124
127
133
137
140
145
150
153
156
158
160
162
162
161
161
158
157
153
148
145
142
136
131
127
125
120
117
114
112
111
109
109
110
111
113
116
119
123
127
131
135
139
144
148
152
155
158
160
161
162
162
161
159
157
153
149
147
143
138
133
129
124
121
118
115
113
110
109
110
109
111
112
115
117
122
126
129
134
138
143
146
151
154
157
159
161
162
162
161
159
158
154
151
148
144
139
134
130
127
123
119
116
113
111
110
109
109
110
111
114
117
121
124
127
133
137
141
145
149
153
156
159
160
161
162
162
160
158
156
153
149
145
141
136
132
127
124
120
117
114
111
110
109
109
110
111
113
116
119
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
156
154
150
146
142
138
133
129
125
122
118
115
113
111
110
109
110
111
112
115
118
122
126
130
134
138
142
147
151
154
157
159
161
162
162
161
160
157
155
151
148
144
139
135
130
127
123
119
116
114
111
110
110
109
111
112
114
117
121
124
128
132
137
141
145
149
153
156
158
161
162
162
162
160
158
156
153
149
146
141
137
132
128
124
121
117
114
111
110
110
109
110
111
113
116
120
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
157
154
150
146
142
138
133
129
126
122
118
115
112
111
110
109
110
111
112
115
118
122
126
129
133
138
142
147
150
154
157
159
161
162
162
161
161
157
155
152
148
144
139
135
130
127
123
119
116
114
111
110
109
109
111
112
114
117
121
124
128
132
137
141
145
150
153
156
158
161
161
162
161
161
158
156
153
149
145
141
137
132
127
124
121
117
114
111
110
109
109
110
111
113
116
120
123
127
131
135
140
144
148
152
155
158
160
161
162
161
161
159
157
154
150
146
142
138
133
129
125
122
118
115
112
111
109
109
110
111
113
115
118
122
126
129
133
138
142
147
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
135
130
127
123
120
116
113
111
110
109
110
110
112
114
117
121
124
127
132
137
141
145
149
153
156
159
160
162
162
162
161
158
156
153
149
145
141
136
132
127
124
121
117
114
112
110
109
109
110
111
114
116
119
123
127
131
135
140
144
147
152
155
158
160
161
162
162
161
159
157
153
151
146
143
138
134
129
126
121
118
115
113
111
109
110
109
111
113
115
119
122
126
129
134
138
143
146
151
154
157
159
161
162
162
161
159
158
155
151
148
145
140
135
130
127
123
120
117
113
111
110
109
109
110
112
114
117
121
124
128
132
136
141
145
149
153
156
158
160
162
162
162
160
159
155
153
149
146
141
136
132
127
125
121
117
114
111
110
109
109
110
111
113
116
119
123
127
131
135
140
144
148
151
155
158
159
161
162
162
161
159
157
154
151
147
143
138
134
129
126
121
121
114
110
113
108
108
113
109
112
118
117
121
127
128
133
139
141
146
151
154
158
159
160
163
163
161
161
158
154
151
148
144
139
135
131
127
123
119
116
113
111
110
109
109
111
112
115
117
121
124
127
132
136
141
145
149
153
156
158
161
161
162
161
160
159
156
153
149
145
141
137
132
127
124
120
117
114
112
110
110
109
110
111
114
116
120
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
157
155
150
147
142
138
134
129
126
122
118
115
113
111
110
109
110
111
112
115
118
122
126
129
133
138
143
147
151
154
157
159
161
161
162
161
160
157
155
152
148
144
139
135
130
127
123
120
116
114
111
110
110
109
111
112
114
117
121
124
128
132
137
141
145
149
153
156
158
161
161
162
161
160
158
156
153
148
145
142
136
131
128
124
121
117
114
112
111
109
109
110
111
113
116
119
123
127
131
135
139
144
148
152
155
157
160
161
161
162
161
159
157
154
151
146
142
139
134
128
126
122
118
115
113
111
110
109
109
111
112
115
118
122
125
129
133
138
142
147
150
154
156
159
161
161
162
161
160
157
156
152
148
144
140
135
130
127
123
120
116
113
111
110
109
109
110
112
114
117
120
124
127
132
136
141
145
149
153
156
158
160
161
162
162
161
158
156
152
149
146
141
136
132
129
124
120
117
115
112
110
109
109
110
111
113
116
119
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
157
154
151
147
142
139
133
129
125
122
118
115
112
111
110
109
110
111
113
115
118
121
125
129
133
138
143
146
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
135
130
127
124
119
116
114
111
110
109
110
110
112
114
117
121
124
127
132
137
141
145
149
153
156
158
160
162
162
162
160
158
156
152
149
146
142
137
131
127
124
121
117
114
111
110
109
110
110
111
113
116
120
123
127
130
135
139
144
148
152
155
158
160
161
162
162
161
159
157
154
151
147
143
137
133
129
126
122
118
115
112
111
110
109
110
111
113
115
119
121
126
129
134
138
142
146
150
154
157
159
161
162
162
162
160
158
155
151
148
144
140
135
131
127
123
119
116
113
111
110
109
110
110
112
114
117
120
124
127
132
137
141
145
149
153
156
158
160
162
162
161
160
158
156
153
149
145
141
136
132
128
124
120
117
115
112
110
109
109
110
111
113
116
119
123
127
130
135
139
144
147
152
155
158
160
161
162
162
161
159
157
154
151
146
142
138
134
129
126
122
118
115
113
111
109
110
110
111
112
115
118
121
126
129
133
138
142
146
150
154
157
159
161
162
162
162
160
158
155
152
148
144
140
135
131
127
124
119
116
113
111
110
109
109
110
111
114
117
121
124
127
132
136
141
145
149
153
156
158
161
162
162
162
160
158
156
153
149
145
141
137
132
127
125
120
117
114
112
110
109
109
110
111
113
116
119
123
127
131
135
139
144
147
152
155
158
160
162
162
162
161
159
157
154
151
146
143
138
134
129
126
121
118
115
113
111
109
109
110
111
112
115
118
121
125
129
133
138
142
146
151
154
157
158
161
161
162
161
160
158
155
152
148
144
140
135
131
127
123
120
116
114
111
110
110
109
110
111
114
117
120
124
127
132
137
141
145
149
152
156
158
161
161
162
162
160
159
156
153
149
146
141
137
132
128
124
120
117
114
112
110
110
109
110
111
113
116
119
123
127
131
134
139
144
148
152
155
157
160
161
161
162
161
159
157
155
150
148
143
138
134
129
125
122
119
115
113
110
110
110
109
111
112
115
118
121
125
129
133
138
142
147
150
154
157
159
161
161
162
161
160
158
155
152
149
144
140
136
131
127
123
120
116
114
111
110
109
109
110
111
114
117
120
124
127
132
136
141
145
149
153
156
158
161
161
162
162
160
158
156
153
149
148
141
133
133
128
122
124
117
112
115
111
108
111
110
110
115
116
117
123
127
131
136
138
143
148
152
155
158
160
160
162
162
161
159
157
154
150
147
143
138
133
130
126
122
118
115
113
110
110
109
110
110
112
114
117
122
126
129
133
137
142
147
151
154
156
159
161
162
162
161
160
158
155
152
149
144
140
136
131
127
123
120
116
114
111
110
109
109
111
112
114
117
121
124
128
132
137
141
145
149
153
156
158
160
161
162
161
161
158
156
153
149
145
141
137
132
128
124
121
117
115
112
111
109
109
110
111
113
116
119
123
127
131
135
139
143
148
152
155
157
160
161
162
162
161
159
157
154
151
147
143
139
134
129
125
122
118
115
113
111
110
109
110
111
113
115
118
121
125
130
134
138
142
147
150
154
156
159
161
163
161
162
160
157
156
152
148
144
140
135
131
127
123
120
116
114
111
110
109
109
110
112
114
117
120
124
127
132
137
140
144
150
153
155
159
160
162
162
161
161
159
156
153
150
145
141
137
132
128
124
121
117
115
112
111
109
110
109
111
113
116
119
123
127
130
135
139
144
147
152
155
158
159
161
162
161
161
159
157
155
152
146
143
139
134
129
126
123
118
115
112
111
110
109
109
111
112
115
118
121
126
129
133
138
142
146
150
154
157
159
161
162
162
162
159
158
155
151
148
145
140
134
131
127
123
119
116
114
111
110
109
110
110
112
114
117
120
124
127
132
136
141
145
149
153
155
158
160
162
162
162
161
159
156
153
150
145
142
136
132
128
125
121
117
114
112
111
109
110
110
111
113
116
119
123
126
130
135
139
144
148
152
155
158
160
162
162
162
161
159
157
154
151
146
143
138
134
129
126
122
118
116
113
111
109
110
110
111
112
115
118
121
125
129
134
138
142
146
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
136
131
127
123
120
117
114
111
110
109
109
111
112
114
117
120
124
127
132
136
140
144
149
153
156
158
160
161
162
162
161
159
156
154
149
146
141
137
133
127
125
120
117
114
112
110
109
110
109
111
113
116
119
123
126
130
135
140
144
147
152
155
158
159
162
162
162
161
159
157
154
151
147
143
138
134
129
126
122
118
115
112
111
109
110
109
111
112
114
118
121
126
129
134
137
142
146
150
154
157
158
161
162
162
161
160
158
155
152
148
144
140
136
131
127
124
120
116
113
112
110
109
109
110
112
114
117
120
125
128
132
136
141
145
150
153
156
158
161
162
162
162
160
159
156
153
149
145
141
137
132
128
125
120
117
114
112
111
109
109
110
111
113
116
119
123
127
130
134
139
143
147
152
155
158
160
161
162
162
160
159
157
154
151
147
143
138
134
129
126
122
118
115
113
111
109
109
109
111
112
115
118
122
125
129
133
138
142
146
150
154
157
159
161
161
162
161
160
158
155
152
148
144
140
135
131
127
123
120
116
113
111
110
109
109
110
111
114
117
120
124
127
132
136
141
145
149
152
156
158
161
161
162
162
161
158
156
153
149
146
141
137
132
128
125
121
117
114
112
110
110
109
110
111
113
116
119
123
126
130
134
139
143
147
151
155
157
159
161
162
162
161
159
157
155
151
147
142
138
134
129
126
122
119
115
113
111
110
109
110
110
112
114
118
121
125
129
133
138
142
146
150
154
157
159
161
161
162
161
160
158
155
152
148
144
140
136
131
127
123
120
116
114
111
110
109
109
110
112
114
116
120
124
127
132
136
140
145
149
152
156
158
161
161
162
161
161
158
156
153
149
145
141
137
132
128
124
121
117
115
112
111
109
109
110
111
113
115
119
122
126
129
134
138
143
147
151
155
157
159
161
162
162
161
159
157
154
151
147
143
139
134
130
126
123
118
116
113
111
109
109
110
110
112
114
118
121
125
128
133
138
142
146
150
154
157
158
160
163
165
159
158
160
153
152
152
142
140
137
129
127
125
118
116
115
110
109
109
109
111
111
113
117
120
123
127
132
135
140
145
148
152
156
158
160
161
162
162
161
159
157
153
150
145
142
137
133
127
125
121
117
115
112
111
109
109
110
111
113
116
119
122
127
130
135
139
144
147
152
154
158
160
161
162
162
161
159
157
154
151
147
143
139
134
130
126
122
118
116
112
111
109
109
109
110
112
115
118
121
126
129
133
137
142
146
150
154
157
159
160
162
162
161
160
157
155
152
148
144
140
135
131
127
123
120
116
113
111
110
110
110
110
111
114
117
119
124
127
133
135
140
144
148
153
156
158
159
161
162
162
161
159
157
152
149
146
141
136
132
128
125
121
117
114
112
111
109
110
109
111
113
115
119
123
127
130
134
138
144
147
152
154
157
159
161
162
162
161
159
157
154
151
146
143
139
133
130
126
122
118
115
112
111
109
109
110
111
112
115
118
121
126
129
133
137
142
146
150
154
157
159
161
162
162
161
159
158
155
152
148
144
140
135
131
127
123
120
116
113
112
110
110
109
110
112
114
117
120
124
127
132
136
140
144
149
153
155
158
161
162
162
162
161
159
157
154
149
146
142
137
132
128
125
121
118
115
113
111
109
109
110
111
113
115
119
122
126
130
134
139
143
147
151
155
157
159
161
162
162
161
159
157
154
151
149
143
138
134
130
126
122
119
116
114
110
110
109
110
111
112
115
118
121
125
128
133
138
141
146
150
154
156
159
161
162
162
161
160
158
156
152
149
144
140
135
131
127
123
120
116
114
111
110
109
109
110
111
114
117
120
124
127
131
136
141
145
149
153
155
158
161
162
162
162
161
159
157
153
150
146
141
138
133
129
125
121
117
115
112
110
110
109
110
111
113
115
118
122
127
130
135
139
143
148
151
155
157
160
161
162
162
161
160
157
155
151
148
143
139
134
130
126
122
119
115
113
111
110
109
109
110
112
115
117
121
125
129
133
138
142
146
150
153
156
159
161
162
162
161
160
158
156
152
149
144
140
136
131
127
123
120
116
114
111
110
109
109
111
112
114
117
120
124
127
131
136
141
145
148
152
156
158
160
161
162
161
161
159
156
154
150
146
141
137
132
129
125
121
118
114
112
111
110
109
110
111
113
116
119
123
126
130
134
139
143
147
151
155
157
159
161
162
162
161
160
157
155
151
147
143
138
134
130
126
122
119
115
113
111
110
109
109
111
112
115
117
122
125
129
133
137
142
146
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
136
131
127
124
120
116
114
111
110
109
109
110
111
114
116
120
123
127
131
136
140
144
149
153
156
158
161
161
162
161
161
158
156
153
149
146
141
137
133
128
125
121
117
115
112
111
109
109
110
111
113
115
118
122
127
131
134
139
142
147
151
155
157
159
161
162
162
161
159
157
155
151
147
143
139
134
130
126
122
119
115
113
111
110
109
110
111
112
115
117
122
126
129
132
137
141
146
150
153
156
159
161
161
162
161
160
158
156
153
149
144
140
136
131
127
123
120
116
114
111
110
109
109
110
112
114
117
120
123
127
131
136
140
145
149
152
156
158
161
161
162
162
161
158
156
153
150
146
141
137
132
128
125
121
118
115
112
111
109
109
110
111
113
115
119
122
126
130
134
139
144
147
151
154
157
160
161
162
162
161
159
157
154
151
147
143
139
134
130
126
122
118
116
113
111
110
109
109
110
112
114
118
121
125
128
133
137
142
146
149
154
156
159
160
162
162
161
160
158
155
152
148
144
140
135
131
127
124
120
116
114
111
110
109
109
110
111
114
117
120
124
127
131
135
140
145
148
153
155
158
160
162
162
162
161
159
156
154
150
146
142
137
132
128
125
121
117
114
112
111
109
109
110
111
113
116
119
122
126
130
134
138
146
147
148
156
157
157
164
161
160
164
159
156
157
151
147
144
138
133
130
126
123
119
115
112
111
109
109
110
110
111
114
118
120
125
129
133
137
142
146
150
153
157
159
161
162
162
162
159
158
155
152
148
144
140
136
132
127
124
120
117
114
111
110
109
109
110
112
113
117
120
124
127
131
136
140
144
148
152
155
158
160
162
162
162
161
159
156
153
150
146
142
137
133
128
125
121
118
115
112
111
110
109
110
111
113
116
119
123
126
130
134
138
143
147
151
154
157
159
161
162
162
161
160
157
155
151
147
143
139
134
130
127
122
119
115
113
111
110
109
109
111
112
115
118
120
126
129
132
137
142
145
150
153
156
159
161
162
162
162
161
158
156
152
149
144
140
136
131
127
124
120
117
114
112
110
109
109
110
111
114
116
120
123
127
132
135
140
145
149
152
155
158
160
162
161
161
161
158
156
154
150
146
142
137
133
128
125
121
118
114
113
111
110
109
109
111
112
115
118
122
126
130
134
139
143
147
152
154
158
159
161
162
162
161
159
157
154
151
147
143
139
134
130
126
122
119
115
113
111
110
109
109
111
112
114
117
121
125
129
134
137
141
146
150
154
157
158
161
162
163
162
160
157
156
153
148
145
141
136
130
127
124
120
116
114
112
110
109
109
110
111
114
116
120
124
127
131
135
140
145
148
152
156
158
160
162
162
162
161
159
157
153
150
147
142
137
133
129
125
121
118
114
113
110
110
109
110
111
113
115
119
123
126
130
134
139
143
147
150
155
157
159
161
162
162
161
160
157
155
151
148
143
139
134
130
127
122
119
115
113
111
110
109
110
111
112
115
117
121
125
129
133
137
141
146
150
153
156
159
161
161
162
161
160
158
155
152
148
145
140
136
131
127
124
120
116
114
112
110
110
110
111
111
114
116
120
123
127
131
135
140
144
148
152
155
158
161
161
162
161
161
158
157
154
150
146
142
137
132
129
125
121
118
115
113
111
110
109
110
111
113
115
119
122
126
130
134
139
143
148
151
155
157
160
161
162
162
161
159
157
155
151
147
143
139
134
130
127
122
119
115
113
111
110
109
109
111
112
115
118
121
125
129
133
137
141
146
150
153
156
158
161
161
162
161
160
157
156
152
149
144
140
136
131
127
124
120
117
114
111
110
109
110
110
111
114
116
120
123
127
131
136
140
144
148
152
156
158
160
162
162
161
161
159
157
154
150
146
142
138
132
129
125
121
117
115
112
111
110
109
110
111
113
115
118
122
126
130
135
139
143
147
150
154
157
159
161
162
162
162
159
157
155
151
147
143
139
134
130
126
122
119
116
113
111
110
109
110
111
112
114
118
121
125
128
132
137
141
146
150
153
156
159
161
162
162
162
160
158
156
152
149
144
141
136
132
127
124
120
117
114
111
110
109
109
110
111
113
116
120
123
127
131
135
140
144
148
152
155
158
160
161
162
161
161
159
157
154
150
146
142
137
133
129
125
121
118
115
112
111
109
110
109
111
112
115
119
122
127
130
134
138
143
147
151
155
157
159
161
162
162
161
159
157
154
151
148
143
139
134
130
127
122
118
116
113
111
109
109
109
111
112
114
118
121
125
127
133
137
141
145
150
153
156
159
161
162
162
162
160
158
155
152
149
144
140
136
132
127
124
120
117
114
111
110
109
110
110
111
113
117
119
124
127
132
135
139
144
148
153
155
158
159
161
162
162
161
158
157
154
150
146
142
137
133
129
126
121
118
115
113
111
109
110
109
111
112
115
119
123
127
130
134
138
143
147
151
154
157
159
161
162
162
161
159
157
155
152
147
144
139
134
131
126
123
119
116
113
111
110
110
110
110
112
115
118
121
126
128
133
137
142
146
150
153
156
159
161
162
162
162
160
158
156
153
149
144
140
136
131
127
124
120
117
114
112
110
109
110
110
111
115
119
116
123
129
128
137
143
142
149
154
153
159
162
160
162
163
159
158
157
154
151
145
141
138
134
128
126
122
117
114
112
110
109
110
110
111
112
116
119
122
126
130
134
138
143
147
151
154
157
159
161
162
162
161
160
158
155
151
147
144
139
135
130
127
122
119
116
113
111
110
109
109
111
112
115
117
121
125
128
132
137
142
146
150
153
157
158
161
162
162
162
161
158
156
152
148
145
140
136
132
127
124
120
117
114
111
110
109
109
110
111
113
116
120
123
127
131
135
140
144
148
152
156
158
160
162
162
162
160
159
157
154
149
147
143
137
133
129
125
121
118
115
113
110
109
109
110
111
113
115
118
122
126
129
134
139
143
147
151
154
157
159
161
162
162
161
159
157
155
152
147
144
140
134
130
127
122
119
115
113
111
110
109
109
111
112
115
117
121
125
128
133
137
141
145
150
153
156
158
161
161
162
161
160
158
156
152
148
144
140
136
131
127
124
120
117
114
111
110
110
109
110
112
114
116
120
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
156
154
150
146
142
138
133
129
125
122
118
115
112
110
110
109
110
111
113
115
118
122
126
130
134
139
143
147
150
154
157
159
161
162
162
161
159
158
155
151
147
144
140
134
130
127
123
119
115
114
111
110
109
110
110
112
115
117
121
125
128
132
137
141
146
149
153
156
158
161
162
163
162
160
158
156
152
149
145
140
135
132
127
124
120
117
115
112
110
109
109
110
111
114
116
120
124
127
130
135
139
144
148
152
155
158
160
161
162
161
161
159
157
154
150
146
142
137
133
129
125
121
118
115
112
111
110
109
110
111
113
115
119
122
126
129
134
139
143
148
150
154
157
160
161
162
162
161
160
158
155
151
147
144
139
134
130
127
123
119
116
113
111
110
109
109
110
112
114
118
121
124
127
133
138
142
145
149
153
157
159
160
161
162
162
161
158
156
152
149
144
141
136
132
127
124
120
117
114
111
111
109
109
110
111
114
116
120
123
127
131
136
140
144
148
152
156
158
160
161
162
162
161
158
157
154
150
146
142
137
133
129
125
121
118
115
112
111
110
109
109
111
113
115
119
122
126
130
134
139
143
147
151
155
157
159
161
162
162
162
160
158
154
151
147
143
139
135
130
126
123
119
115
113
111
110
109
109
111
112
114
118
121
125
128
132
137
141
146
150
153
156
159
161
162
162
161
160
158
156
153
149
145
141
136
132
127
124
120
117
114
111
110
109
109
110
111
113
117
119
124
127
131
135
140
144
148
152
155
158
160
161
162
162
161
158
157
154
150
146
142
138
133
129
125
121
118
115
112
111
109
110
109
111
112
115
118
122
126
130
134
138
143
147
151
154
157
159
161
162
162
161
159
157
155
152
147
144
139
135
130
127
123
118
116
113
111
110
109
109
110
112
114
117
121
124
128
132
136
141
145
149
153
156
158
161
162
162
161
160
158
155
153
149
145
141
136
132
127
124
120
117
114
112
110
109
109
110
111
113
116
120
123
127
131
135
140
144
148
152
155
158
160
162
162
162
161
159
157
154
150
147
142
138
133
128
125
121
118
115
112
111
110
109
109
111
112
115
118
122
126
129
134
139
143
147
151
154
157
159
161
162
162
161
159
157
155
152
148
144
139
135
130
127
123
119
116
113
111
110
109
109
111
112
114
117
121
124
128
132
137
142
145
150
153
156
158
161
161
162
162
160
158
156
153
149
145
141
136
132
128
124
121
117
114
112
110
109
109
110
111
113
116
119
123
127
131
135
140
144
148
152
155
158
160
161
162
161
161
159
156
154
150
146
142
137
133
129
125
121
118
115
113
111
110
109
109
111
113
116
118
122
126
130
134
138
143
147
151
154
157
159
161
161
162
161
160
157
155
151
148
144
139
135
130
127
122
119
117
116
108
109
111
106
111
115
112
118
122
123
129
135
135
141
146
148
153
157
158
162
161
162
162
161
157
157
154
148
144
141
136
131
128
124
120
117
114
112
110
109
109
110
111
114
116
119
124
127
131
135
140
144
149
152
155
157
160
161
163
162
161
159
157
154
150
146
142
138
133
129
126
121
118
115
113
111
110
109
110
111
113
115
118
122
126
129
134
138
143
147
151
154
157
159
161
162
162
161
160
157
155
152
148
144
139
134
131
127
123
119
116
113
111
110
110
110
110
112
115
117
120
125
129
131
137
142
146
149
153
156
159
161
161
162
162
160
158
156
152
149
145
141
137
132
127
124
120
117
114
111
111
109
110
110
111
114
116
120
122
127
132
135
139
144
148
151
155
158
161
162
162
162
161
159
157
154
150
146
142
138
133
129
126
122
118
115
113
111
110
109
110
111
112
115
119
122
126
129
134
138
143
147
151
154
157
159
161
162
162
161
160
158
155
152
148
144
139
135
130
127
123
119
116
113
111
110
109
110
110
112
114
117
121
125
127
132
137
141
145
149
153
156
159
160
162
162
162
161
158
156
152
149
145
141
136
132
127
124
120
117
114
111
110
109
109
110
111
113
116
120
123
127
131
136
139
144
148
152
155
158
160
162
162
162
161
159
157
154
150
146
143
138
132
129
126
122
117
115
113
111
109
109
109
111
112
115
118
121
126
129
134
138
143
147
151
154
157
159
161
162
162
161
160
158
154
152
148
144
138
135
131
127
123
119
116
113
111
109
110
109
110
111
114
117
121
124
127
132
136
141
145
149
153
156
158
161
161
162
162
160
159
156
153
149
145
141
137
132
127
124
120
117
114
112
110
110
109
110
111
113
116
119
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
160
157
154
150
147
143
138
134
129
126
121
118
115
113
111
109
109
110
111
112
116
118
122
126
129
134
138
143
147
151
154
157
159
161
162
162
161
159
157
155
151
148
144
139
135
130
127
123
119
116
113
111
110
110
109
111
112
114
117
120
124
127
132
136
141
145
150
153
157
158
160
162
162
162
160
158
156
153
149
145
141
137
132
127
124
120
117
114
112
110
110
109
110
111
113
116
119
123
127
132
135
139
143
148
152
155
157
159
161
162
162
161
159
157
154
150
147
142
138
133
129
125
121
118
115
113
110
109
109
110
111
113
115
118
122
126
130
133
137
142
147
151
154
157
159
161
162
162
161
160
158
155
152
148
144
139
135
131
127
123
119
116
113
111
110
109
109
110
111
114
116
120
124
127
132
137
141
145
149
153
156
158
161
161
163
162
160
158
156
153
149
145
141
137
132
127
124
121
117
114
112
110
109
109
110
111
113
116
120
123
127
131
135
139
144
148
152
155
157
160
161
162
161
161
159
157
154
150
147
142
138
133
129
125
122
118
115
112
111
110
109
110
111
113
115
118
122
126
129
133
138
142
147
150
154
157
159
161
162
162
161
160
157
155
152
148
144
140
135
131
127
123
119
116
114
111
110
109
109
110
112
114
117
121
124
128
132
137
141
145
149
153
156
158
161
161
162
161
161
158
156
153
149
145
141
136
132
127
124
121
117
114
111
110
109
109
110
111
114
116
120
123
127
131
135
140
144
148
152
155
158
160
162
162
162
161
159
157
154
150
147
142
138
133
129
126
122
118
115
113
111
110
109
110
111
113
115
119
122
125
129
134
138
143
147
150
154
157
159
161
162
162
161
160
157
155
152
148
144
140
135
131
127
123
120
116
114
111
110
109
110
110
111
114
117
120
124
128
132
137
141
145
149
153
156
158
160
162
162
161
161
158
156
153
149
145
141
136
132
128
124
120
117
114
112
111
109
109
110
112
114
116
120
123
127
130
135
140
144
148
152
155
158
160
161
162
162
161
159
157
154
151
147
142
141
132
127
127
121
117
119
111
110
112
109
109
113
112
115
120
121
125
129
134
138
143
146
150
155
157
159
162
162
161
161
160
158
155
152
148
144
140
136
131
127
124
119
116
114
111
110
109
110
110
112
114
117
121
125
128
132
137
141
145
149
153
156
159
160
162
162
162
161
158
156
153
150
145
142
136
132
127
124
120
117
115
112
111
109
109
110
111
113
116
119
123
127
131
135
139
144
148
152
155
158
160
162
162
162
161
159
158
154
150
147
144
137
133
130
126
122
118
115
113
111
109
109
110
111
112
115
118
121
126
129
134
137
142
146
151
155
157
159
161
162
162
162
159
158
155
152
147
144
140
135
130
127
123
119
116
113
111
111
109
109
111
112
114
116
121
125
128
132
136
141
145
150
153
156
158
160
162
162
162
160
158
156
153
150
145
141
136
132
127
125
121
117
114
112
110
110
109
110
111
113
116
119
123
127
131
135
139
144
147
152
155
158
160
161
162
162
161
159
157
154
150
146
143
138
134
129
126
122
119
115
113
111
109
110
109
111
112
115
118
122
126
129
134
138
143
146
151
154
157
159
161
162
162
162
159
158
155
152
148
144
139
135
131
127
123
119
116
113
111
110
109
109
110
111
114
117
121
125
127
132
136
141
145
149
153
156
158
160
161
162
161
160
159
155
154
149
145
141
137
132
127
125
121
117
114
112
111
110
109
110
111
113
116
119
123
127
131
135
139
144
148
152
154
158
159
161
162
162
161
159
157
154
150
147
143
137
133
129
126
121
118
115
113
111
109
109
109
111
112
115
118
121
126
129
133
138
142
146
151
153
157
159
161
162
162
161
160
158
155
152
148
144
139
135
130
127
123
119
116
114
111
110
110
109
110
111
114
117
120
124
127
132
136
141
145
149
153
156
158
161
161
162
162
161
159
156
153
149
145
141
136
132
127
124
121
117
114
111
110
110
109
110
111
113
116
119
123
127
131
135
139
144
148
151
155
158
160
161
162
162
161
160
157
154
150
147
142
138
134
129
126
122
118
115
113
111
110
109
110
111
112
115
118
122
125
130
133
138
143
147
150
154
157
159
161
162
162
161
160
157
155
152
148
144
139
135
130
127
123
120
116
114
111
110
109
109
111
111
114
117
121
124
127
132
137
141
145
149
153
156
158
161
161
162
162
161
158
156
153
149
145
141
137
132
127
124
121
117
115
111
111
110
109
110
111
113
116
120
123
127
130
135
140
144
148
151
155
158
160
161
162
161
161
159
157
154
151
147
142
139
133
129
126
122
118
115
113
111
110
109
110
110
112
115
118
121
126
129
134
138
142
147
150
154
156
159
161
162
162
161
159
158
155
152
149
144
140
135
131
127
123
120
116
113
111
110
109
110
110
112
113
117
120
124
128
133
136
140
145
149
153
156
158
160
162
162
162
160
158
156
153
150
145
141
137
132
128
124
121
117
114
111
110
110
110
110
111
113
116
119
123
127
130
134
139
144
148
152
155
157
160
162
162
162
161
159
157
154
150
146
142
138
134
129
126
122
118
116
112
111
110
109
110
111
113
115
118
121
126
129
134
138
142
147
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
135
131
127
123
119
116
113
111
110
109
109
110
112
114
117
121
124
127
132
136
141
145
149
153
156
158
160
162
162
162
160
159
156
153
149
145
142
137
132
127
125
120
117
114
112
111
109
110
110
111
113
116
119
123
127
130
135
139
144
148
152
155
158
160
161
162
162
161
159
157
155
151
147
143
137
134
129
126
122
119
115
113
111
110
109
110
111
113
115
118
122
126
129
133
138
142
146
150
154
157
159
161
162
161
162
160
158
155
152
148
144
139
135
131
127
123
119
116
114
111
110
109
109
110
111
114
117
120
124
127
132
136
141
145
149
153
155
158
160
162
161
161
162
161
153
153
151
142
143
139
130
129
126
118
118
115
111
111
110
108
109
112
113
117
119
123
127
131
135
140
144
147
151
155
158
159
162
162
161
161
160
157
154
151
147
142
138
134
129
126
122
118
115
113
111
109
110
109
111
112
115
118
122
125
129
133
138
142
146
151
154
157
159
161
162
162
161
160
158
155
152
148
144
139
135
130
127
123
119
116
113
111
110
110
109
110
112
114
117
120
123
128
132
135
140
145
149
152
156
158
161
161
162
161
161
158
156
153
149
146
141
137
132
128
124
121
117
114
112
110
109
109
110
111
113
115
119
123
126
130
135
139
143
148
151
155
157
159
161
162
161
161
159
157
155
151
147
143
139
134
129
126
122
118
115
113
111
109
109
109
110
112
114
118
122
125
128
133
138
142
146
150
153
156
158
161
162
162
161
160
158
155
152
148
144
140
135
131
127
123
120
116
113
111
110
109
109
111
111
114
117
120
123
127
132
136
140
145
149
152
156
158
160
161
162
161
161
158
156
153
149
146
141
137
131
128
124
121
117
114
112
110
109
109
110
111
113
116
119
123
127
131
134
138
143
148
152
155
157
159
161
162
162
161
158
157
154
150
147
142
138
133
129
126
122
119
115
113
111
110
109
110
111
112
114
118
122
126
129
132
137
142
147
150
154
156
159
161
162
162
161
160
157
156
152
148
144
140
135
130
127
124
120
116
113
111
111
109
109
110
112
114
116
120
124
127
132
136
141
145
149
152
156
158
161
161
162
162
161
158
157
153
150
147
142
136
132
129
124
121
117
114
112
110
109
110
110
111
113
116
119
123
127
130
135
139
144
148
151
155
157
160
161
162
161
161
159
157
154
151
147
143
139
134
130
126
122
118
116
113
111
110
109
110
111
112
115
118
121
126
129
133
138
142
146
150
154
156
159
161
162
162
162
160
158
155
152
148
144
140
135
131
127
124
120
116
114
112
110
109
110
110
112
114
117
120
124
127
132
136
141
145
149
153
156
158
160
162
162
162
161
159
156
153
150
145
141
137
133
127
125
121
117
115
112
111
109
109
110
111
113
116
119
123
127
130
135
139
144
147
152
155
157
159
161
162
162
161
159
157
154
151
147
143
139
134
130
126
122
118
116
113
111
109
109
109
111
113
114
118
121
125
129
133
137
142
146
150
154
156
159
161
162
162
162
160
158
155
152
149
144
140
135
131
127
123
120
117
113
111
110
110
109
110
112
114
117
120
124
127
132
136
140
145
149
153
156
158
161
162
162
162
160
159
156
153
150
145
141
137
133
128
125
120
117
114
112
111
110
109
110
111
113
116
119
123
127
130
135
139
144
147
152
155
158
159
161
162
162
161
159
157
154
151
147
143
138
133
129
126
122
118
115
112
111
109
109
110
111
112
115
118
121
126
129
133
137
142
146
150
154
157
159
161
162
162
162
160
158
155
152
148
144
140
135
131
127
123
119
116
113
111
110
109
109
110
112
114
117
120
124
127
132
136
141
145
149
153
156
158
160
162
162
162
161
159
156
153
149
146
141
137
132
128
125
120
118
114
112
110
110
109
110
111
113
116
119
123
126
130
134
139
144
148
151
155
158
159
161
162
162
161
160
157
155
150
147
143
138
134
129
126
121
118
115
113
111
110
109
110
111
112
115
117
121
126
130
133
137
141
146
151
154
157
158
161
162
162
162
160
158
155
152
148
144
139
136
131
127
123
120
116
114
111
110
109
109
111
111
114
116
121
124
127
131
135
141
145
149
153
156
158
161
161
162
162
161
158
156
153
149
145
141
137
132
128
125
121
117
114
112
110
110
109
110
111
113
116
119
123
127
130
135
139
143
147
152
155
158
160
161
162
162
161
159
157
154
151
147
143
139
134
130
126
122
119
116
113
111
110
109
110
110
112
114
118
121
125
129
133
137
142
146
150
156
156
156
162
161
160
165
160
156
158
152
147
146
140
135
132
127
122
120
116
114
112
109
109
111
110
112
115
117
119
124
127
131
136
140
144
148
153
156
158
160
162
162
162
161
159
156
153
150
146
142
137
133
128
125
121
118
115
112
111
109
109
110
111
113
116
119
122
126
130
134
139
143
147
151
155
158
159
161
162
162
161
159
158
155
150
147
144
138
134
130
127
122
118
115
113
111
109
109
109
111
112
115
117
121
125
128
133
137
142
146
150
153
156
159
161
162
162
162
160
158
156
152
148
144
141
136
130
127
124
119
117
114
111
110
109
109
111
111
114
117
120
124
127
132
136
140
144
148
153
156
158
160
162
162
162
161
159
156
154
150
146
142
138
133
128
125
121
118
115
113
110
110
110
110
111
113
116
119
123
126
130
134
139
144
147
152
155
158
160
161
162
162
161
159
157
154
151
147
144
138
134
130
126
122
118
116
113
111
110
110
109
111
112
115
118
121
125
128
133
137
142
146
150
154
157
159
161
162
162
161
160
158
156
152
148
144
140
135
131
127
124
120
117
114
112
110
110
110
111
111
114
117
120
124
127
132
136
141
144
149
152
156
158
160
161
162
161
160
159
156
153
150
146
141
137
133
129
125
121
118
115
113
111
109
109
110
111
113
116
119
122
127
130
134
139
143
147
151
154
157
159
161
162
162
161
159
157
154
152
148
142
139
135
129
126
123
119
115
113
111
110
109
109
111
112
115
117
121
125
129
133
137
142
146
150
153
157
159
161
162
162
161
160
158
155
153
148
145
141
135
130
127
124
120
116
114
112
110
109
109
111
111
114
116
120
124
128
132
135
140
144
149
153
156
158
160
162
162
162
161
159
156
154
150
146
142
138
133
128
125
121
118
114
112
110
109
109
110
111
113
115
119
123
127
130
133
139
144
148
151
154
157
159
161
162
162
161
160
157
155
151
147
143
139
134
129
126
122
119
115
113
111
110
109
109
111
112
115
117
122
125
129
133
137
142
146
150
153
157
159
161
162
162
161
160
158
155
152
148
145
140
136
131
127
124
120
116
114
111
110
109
109
110
111
114
116
120
124
127
131
136
140
144
149
152
156
158
160
162
162
162
161
159
156
153
150
146
141
137
133
129
125
121
117
115
113
110
110
109
110
111
113
116
119
123
126
130
134
139
143
147
151
154
157
160
161
162
162
161
159
157
154
151
148
143
139
134
130
126
122
119
115
113
111
110
109
110
111
112
115
118
121
125
129
133
138
141
146
150
153
156
159
161
161
162
161
160
158
156
152
148
144
140
136
131
127
124
120
117
114
111
110
109
110
110
111
114
116
120
123
127
131
136
140
144
149
153
156
158
160
162
162
161
161
159
156
153
150
146
141
137
133
129
125
121
117
115
112
111
109
109
110
111
113
115
119
122
126
130
134
138
143
147
151
155
157
160
161
162
162
161
159
157
155
152
148
144
139
134
130
126
122
118
116
113
111
110
110
110
111
112
114
118
121
125
129
133
137
142
146
150
154
156
159
161
162
162
162
160
158
155
152
149
145
140
136
132
127
124
120
117
114
111
110
109
109
110
111
114
116
120
124
127
132
136
140
144
148
153
155
158
160
162
162
162
161
158
157
154
150
146
142
137
133
128
125
121
117
115
112
111
109
109
110
111
113
115
119
122
127
130
134
139
143
147
152
155
157
159
161
162
162
161
159
158
154
151
147
143
139
134
129
126
122
119
116
113
111
110
109
109
111
112
115
117
121
125
128
133
137
142
146
150
153
156
159
161
162
162
162
160
158
155
153
149
144
140
136
131
127
124
119
116
114
112
110
109
109
110
111
114
117
119
124
127
131
136
140
145
149
152
155
158
160
162
162
162
161
159
156
153
149
146
142
138
133
127
125
121
118
116
114
107
108
111
107
111
116
113
119
125
124
130
136
138
144
148
150
154
157
159
162
162
161
162
160
156
155
152
147
144
138
134
129
127
122
118
115
113
112
109
110
110
111
111
115
117
121
125
128
133
137
142
145
150
153
157
158
161
162
162
161
160
158
156
153
148
144
140
136
131
127
123
119
117
114
111
110
110
109
111
111
114
117
120
123
127
131
135
140
144
148
152
155
158
160
162
162
162
161
158
157
153
150
146
141
138
133
129
125
121
117
114
113
110
109
110
110
111
113
116
119
123
126
130
134
139
143
147
151
154
157
159
161
162
163
161
159
157
154
151
147
143
139
134
130
127
122
119
115
113
111
110
109
109
111
112
114
117
121
125
129
133
137
142
146
150
153
157
158
161
161
162
161
160
158
156
152
148
144
140
135
131
127
123
120
116
114
111
110
109
109
111
111
114
116
120
124
127
132
135
140
144
148
152
156
158
160
161
162
162
161
159
156
154
150
146
141
137
133
129
125
121
118
115
112
111
109
109
110
111
113
115
119
122
126
130
134
138
143
147
151
155
157
159
161
162
162
161
159
157
154
151
147
143
139
134
130
126
123
119
116
114
111
110
109
110
110
112
115
118
121
125
129
133
137
141
146
150
154
157
158
161
162
162
161
160
158
156
152
149
145
140
136
131
127
124
120
117
114
111
110
109
110
110
111
114
117
120
123
127
131
136
140
144
148
152
155
158
160
161
162
162
161
159
157
153
151
146
141
138
134
128
125
122
118
114
112
111
110
109
109
111
113
115
119
122
126
129
134
139
143
147
151
155
157
159
161
162
162
161
159
157
155
151
147
143
140
133
130
127
123
118
116
113
111
110
109
110
111
112
114
118
121
125
129
133
137
142
146
150
154
156
159
160
161
162
161
161
158
156
152
149
144
140
136
131
127
123
120
116
114
111
111
109
109
110
111
114
116
120
123
127
131
136
140
144
148
152
156
158
160
161
162
161
161
158
157
154
150
146
142
137
133
128
125
121
118
115
112
111
110
109
110
111
113
115
119
122
127
130
135
138
143
147
151
154
157
159
161
162
162
161
159
157
155
150
148
144
140
134
129
126
123
119
116
113
111
110
110
110
111
112
114
118
121
125
128
132
137
142
146
150
153
156
159
161
162
162
161
160
158
155
152
149
145
141
135
131
127
124
120
116
114
111
110
109
110
110
111
114
117
120
124
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
156
154
150
146
142
137
133
128
125
121
118
115
112
111
109
109
110
111
113
115
118
122
126
130
134
138
143
147
151
154
157
159
161
162
162
162
159
157
155
151
147
144
139
134
130
127
123
119
116
113
111
110
109
109
110
112
115
117
121
125
128
133
137
142
145
149
153
156
159
160
162
162
161
160
158
155
153
149
145
140
136
132
127
124
120
117
114
111
110
109
109
110
111
113
116
119
123
127
131
135
140
144
148
152
155
158
159
162
162
162
161
159
157
154
150
146
142
137
133
128
125
121
117
115
112
111
110
109
109
111
112
115
118
122
126
129
134
138
143
147
151
154
157
159
161
162
162
161
159
158
155
152
147
144
139
135
130
127
122
119
115
113
111
109
109
109
111
112
114
117
121
125
127
133
137
142
145
150
153
156
158
160
162
162
161
159
158
156
152
148
145
140
136
131
127
124
120
117
114
112
110
109
109
110
111
113
117
120
124
127
131
135
140
144
149
152
155
158
159
162
162
162
161
159
156
154
150
146
142
137
133
129
126
121
118
114
112
111
110
109
110
111
113
115
118
122
126
130
134
139
143
147
151
154
157
159
161
161
162
161
160
157
155
152
147
144
139
134
130
127
122
119
116
113
111
109
109
110
111
112
115
117
121
124
128
132
137
142
146
150
153
156
159
161
162
162
161
163
159
152
154
149
142
143
137
129
130
124
118
119
114
111
111
109
108
110
111
114
117
119
123
127
131
135
141
144
147
152
155
157
160
162
162
161
161
159
157
154
150
147
142
137
133
129
125
121
118
115
112
111
110
109
110
111
113
116
119
122
126
131
134
138
144
147
151
154
157
160
162
162
162
161
160
157
155
151
147
144
139
134
130
126
123
119
115
113
111
110
109
109
111
112
115
118
121
124
128
133
137
141
146
150
153
157
158
161
162
162
161
161
158
156
152
148
145
142
136
131
127
124
121
117
114
111
110
110
109
110
111
113
117
120
123
127
131
136
140
144
149
152
156
158
160
161
162
162
161
159
156
154
150
147
142
137
132
129
126
121
118
114
113
111
110
109
110
111
113
115
119
122
126
130
134
139
143
147
150
155
157
159
161
162
162
161
160
158
155
151
147
143
139
134
130
127
123
119
115
113
111
110
109
110
111
112
115
118
121
125
128
133
137
141
146
149
153
156
158
160
161
162
162
161
158
156
153
149
145
141
136
132
127
124
120
116
114
111
111
109
110
110
111
114
116
120
124
127
131
136
140
144
148
152
155
158
160
162
162
162
161
159
157
153
150
147
142
138
133
129
125
121
117
115
112
111
110
110
110
111
112
115
118
122
126
129
134
138
143
147
151
155
157
160
161
162
162
161
159
157
155
151
148
144
139
134
130
127
122
119
116
113
112
110
110
109
111
112
115
118
121
125
127
132
137
141
145
149
154
156
159
160
162
162
162
161
158
156
153
149
145
140
137
132
127
124
120
117
114
111
110
110
110
110
111
113
116
120
123
127
131
135
140
144
148
152
155
158
160
162
162
162
161
159
157
154
150
145
142
138
132
129
126
121
118
115
112
111
109
109
109
111
112
115
118
122
126
130
134
138
143
147
151
154
157
159
161
162
162
161
159
157
155
152
147
144
139
135
130
127
122
119
116
113
111
110
110
109
111
112
114
117
121
125
128
132
137
141
145
150
153
156
158
160
162
162
162
160
158
156
153
149
145
140
136
132
127
124
120
117
114
112
110
109
109
110
111
113
117
119
124
127
131
135
140
144
148
152
155
158
160
162
162
162
161
159
156
154
150
146
142
138
133
129
125
121
118
115
113
110
109
109
110
111
113
115
118
122
126
130
134
138
143
147
150
154
157
159
161
162
162
161
159
157
155
151
148
144
139
135
130
127
122
119
116
113
111
110
109
109
110
112
114
117
121
124
128
132
137
141
145
149
153
156
159
161
161
162
161
161
158
156
153
149
145
141
136
132
127
124
121
117
115
112
111
109
109
110
111
114
116
119
123
127
131
135
139
144
148
152
155
158
160
161
163
162
161
158
157
154
150
146
142
138
133
129
126
122
118
115
112
111
109
109
110
111
113
115
118
122
127
129
133
137
143
147
150
154
156
159
161
162
162
161
159
158
155
152
148
143
140
135
131
127
123
119
116
114
111
110
109
109
110
112
114
117
121
125
128
132
137
141
145
149
153
156
158
161
162
162
162
161
158
156
153
149
145
141
136
132
127
124
121
117
114
111
111
109
109
110
111
113
116
120
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
156
154
150
146
142
138
133
129
125
121
118
115
112
111
110
109
110
111
113
115
118
122
126
129
134
138
143
147
150
154
157
159
161
162
162
161
160
158
155
151
148
144
139
135
130
127
123
119
116
113
111
110
109
109
110
112
114
117
121
125
128
132
137
141
146
149
153
156
158
160
162
162
162
161
158
156
152
149
145
141
136
132
127
124
120
117
114
111
110
109
110
110
111
114
116
119
123
127
131
136
140
144
148
152
156
158
160
161
162
162
161
159
157
154
150
146
142
138
133
129
125
122
118
115
112
111
109
109
110
111
113
115
118
121
127
132
131
137
145
144
151
157
154
160
163
160
162
163
158
158
156
150
147
144
139
135
130
126
124
119
116
114
112
109
109
110
110
112
114
117
120
125
128
133
137
141
145
149
153
156
160
160
161
162
162
159
158
157
153
149
145
140
136
132
127
124
120
117
115
112
110
109
110
110
111
113
117
119
123
127
131
135
140
144
148
152
155
158
161
162
161
162
162
158
156
155
150
146
143
138
134
129
125
122
118
115
112
111
109
110
110
111
112
115
118
122
126
129
134
138
143
146
151
154
157
159
161
162
162
161
160
158
155
152
148
144
139
135
130
127
123
119
116
113
111
109
110
109
111
112
114
117
120
125
127
132
136
141
145
150
153
156
158
160
162
161
161
160
158
155
153
149
145
141
136
132
127
124
120
117
114
112
110
109
109
110
111
113
116
119
124
127
131
135
140
144
148
152
155
158
160
162
162
162
161
159
157
154
150
146
142
138
134
129
125
121
118
115
112
111
110
109
110
110
112
115
117
122
126
130
134
138
142
147
151
154
157
158
161
162
162
161
160
157
155
152
148
144
139
135
130
127
122
120
116
113
111
110
109
109
111
111
114
117
121
125
128
132
136
141
146
149
153
156
158
160
161
162
162
161
158
156
153
149
145
141
137
132
127
124
120
117
114
111
111
109
110
110
111
114
116
120
123
127
130
135
140
144
148
152
155
157
160
161
162
161
161
159
157
154
150
147
142
138
133
129
125
121
118
115
113
111
110
109
110
111
113
115
119
122
126
129
134
138
143
147
150
154
157
159
161
162
162
161
160
158
155
152
148
143
140
136
131
126
123
120
116
113
111
110
109
109
110
112
114
117
120
124
128
132
136
141
145
149
153
156
158
160
162
162
161
161
158
156
153
149
145
142
137
131
128
125
120
117
114
112
111
109
109
110
111
113
116
119
123
127
130
135
139
144
148
152
155
157
160
161
162
162
161
159
157
154
150
146
142
138
133
129
126
122
118
115
113
110
110
109
109
111
113
115
119
121
126
129
134
138
142
147
150
154
157
159
161
162
162
161
159
157
155
151
148
144
139
134
131
127
123
119
116
113
111
110
109
110
111
112
114
117
121
124
127
132
137
141
145
149
153
156
159
161
161
162
162
161
158
156
153
149
145
141
136
132
127
124
120
117
114
111
111
109
109
110
111
113
116
119
123
127
131
135
139
144
148
152
155
158
160
161
162
162
161
159
157
153
151
147
142
138
134
129
125
122
118
115
113
111
110
109
110
111
112
115
118
122
126
129
134
138
143
146
151
154
157
159
161
162
162
161
160
158
155
152
148
144
139
135
130
127
123
119
116
113
111
110
109
109
110
112
114
117
120
125
128
132
136
141
146
150
153
156
159
160
162
162
162
161
159
156
153
150
145
141
136
132
127
124
120
117
114
112
110
109
110
110
111
113
116
119
123
127
131
135
140
144
148
152
155
158
160
162
163
162
161
159
157
154
151
146
143
138
133
129
125
122
118
115
112
111
110
110
109
111
113
115
119
122
126
129
134
138
143
146
151
154
157
159
161
162
162
161
160
158
155
152
148
144
139
135
131
127
123
119
116
114
111
110
109
109
110
111
114
117
120
125
128
133
136
140
145
150
153
156
159
161
162
162
162
160
158
155
153
149
145
141
137
132
128
125
120
118
114
112
111
109
109
110
111
113
116
120
124
127
131
134
139
144
148
152
155
158
159
162
162
162
161
159
157
154
151
146
142
138
134
129
126
122
118
115
113
111
109
110
110
111
112
115
118
122
126
129
134
138
143
147
151
154
157
159
161
162
162
162
159
158
155
152
148
144
140
135
131
127
123
120
116
114
111
109
109
109
111
112
114
117
121
125
128
133
136
141
145
149
153
156
159
160
161
162
162
160
158
156
153
149
146
141
137
132
127
124
121
120
112
110
112
107
109
113
110
113
118
117
123
128
130
135
141
143
147
152
155
158
160
161
162
163
160
159
158
153
150
146
142
138
133
128
126
122
118
115
113
111
110
109
109
111
112
115
118
122
125
129
133
138
142
146
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
135
130
126
123
120
115
113
112
110
109
109
111
112
114
117
121
124
127
132
136
141
144
150
152
156
158
161
161
162
162
161
159
156
153
149
145
141
136
132
127
124
120
117
114
111
110
109
109
110
111
114
116
119
123
127
131
134
140
144
148
152
155
158
160
161
162
162
161
159
157
155
150
147
142
138
133
129
126
121
118
115
113
111
110
109
110
111
112
115
118
122
125
129
133
138
142
146
151
154
157
160
161
162
162
161
160
157
155
152
148
144
139
135
130
127
123
119
116
114
111
110
109
109
111
112
114
117
121
124
128
132
136
140
145
149
152
156
158
161
162
162
162
161
158
156
153
149
146
141
136
132
128
124
121
117
115
112
111
110
109
110
111
113
116
120
123
127
130
135
139
144
148
151
155
157
160
161
162
162
161
159
157
154
151
147
143
138
134
130
126
122
118
115
113
111
110
109
110
111
112
115
118
121
126
129
133
138
142
147
150
154
157
159
161
162
162
161
159
157
155
152
148
144
140
135
131
127
123
119
116
113
111
110
109
109
110
111
114
117
120
124
127
132
136
141
145
149
153
156
158
160
161
162
162
161
158
157
153
150
145
142
137
132
127
125
121
117
115
111
110
109
109
110
111
113
116
119
122
127
131
135
139
143
148
152
155
157
159
161
162
162
161
158
158
154
151
147
142
139
134
129
125
122
118
115
112
111
110
110
109
111
113
114
118
122
126
129
133
137
143
147
151
154
156
159
161
162
162
161
160
158
155
152
148
144
140
135
130
127
123
119
116
113
111
110
109
109
111
112
114
117
120
125
128
132
136
141
145
149
153
156
158
160
162
162
162
161
158
156
153
150
145
141
136
132
127
125
121
118
114
111
110
109
109
110
111
113
116
119
123
127
130
135
139
144
148
152
155
158
159
161
162
162
161
159
157
154
150
147
142
138
134
129
126
122
118
116
113
111
110
110
109
111
112
115
118
121
126
129
133
138
143
146
150
154
157
159
161
162
162
162
161
158
155
152
148
144
140
135
131
127
123
119
116
114
111
110
110
109
110
111
114
117
120
124
127
132
136
141
145
149
152
156
158
161
162
162
162
160
158
156
153
150
145
141
137
132
127
124
120
117
114
112
110
109
109
110
111
113
116
119
123
127
130
135
139
144
148
152
155
158
159
161
162
162
161
159
157
154
151
147
143
138
134
129
126
122
119
115
113
111
109
109
109
111
112
115
118
122
125
129
133
138
142
146
150
153
157
159
161
162
162
161
160
158
155
152
149
144
140
135
130
127
123
120
116
114
111
110
109
109
111
111
114
117
120
124
127
132
136
141
145
149
153
156
158
160
161
163
162
161
159
156
153
149
146
141
137
132
128
124
121
117
114
112
110
110
109
110
111
113
116
119
123
127
131
135
139
143
148
151
155
157
160
161
162
162
161
159
157
154
150
147
143
138
134
130
126
122
118
115
113
110
110
109
110
111
112
115
117
122
125
129
133
138
142
146
150
154
157
159
161
162
162
161
160
157
155
152
148
144
139
135
131
127
123
119
116
114
111
110
109
110
110
111
114
116
121
124
127
132
136
140
145
149
153
156
158
161
161
162
162
161
158
156
153
150
145
141
137
132
128
124
121
117
114
112
110
110
109
110
111
114
116
119
123
127
130
135
139
143
148
151
155
157
160
161
162
161
162
159
157
154
150
147
142
139
134
129
126
122
119
116
113
110
110
109
110
110
113
114
117
121
126
130
133
137
141
146
150
154
157
159
161
162
161
162
162
155
155
154
146
145
142
133
131
129
121
120
118
113
111
111
108
109
111
111
114
117
120
125
128
131
137
141
144
148
153
155
158
161
162
161
162
161
158
156
153
149
145
141
137
132
127
124
121
117
115
112
110
109
109
110
111
113
115
120
123
126
130
135
139
144
147
151
155
157
159
161
162
161
161
159
157
154
150
147
143
138
133
129
126
122
118
115
113
110
110
109
110
111
112
114
118
121
125
129
133
138
142
147
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
135
131
127
123
120
116
114
111
110
109
109
110
112
114
117
121
124
127
131
136
141
145
149
153
156
159
161
162
162
162
160
158
156
153
150
145
141
137
132
128
125
121
117
115
112
111
109
109
110
111
113
116
119
123
127
130
134
139
143
147
152
154
157
160
161
162
162
161
159
157
154
151
147
142
138
134
130
126
122
118
115
112
111
110
109
110
111
113
115
118
121
125
129
133
138
142
146
150
154
157
159
161
162
162
162
160
158
155
152
148
144
140
135
131
127
123
119
116
114
111
110
109
110
110
111
114
117
120
124
127
132
136
141
145
149
153
156
158
160
162
162
162
161
158
156
153
150
145
141
137
133
127
124
121
117
115
112
111
109
110
110
111
113
116
119
122
127
130
135
139
144
147
151
155
158
160
161
162
162
161
159
157
154
151
147
143
138
134
129
126
122
118
115
113
111
109
110
110
111
113
115
118
121
125
129
133
138
142
146
150
154
157
159
161
162
162
162
160
158
155
152
148
144
140
136
131
127
123
119
117
114
111
110
110
109
111
112
114
117
120
124
127
132
136
141
145
149
152
156
158
160
161
162
162
160
159
156
153
150
146
141
137
133
129
124
121
118
115
112
110
110
109
110
111
113
116
119
123
127
130
135
139
144
148
151
155
158
160
162
162
162
161
160
157
154
151
147
143
139
134
129
127
122
118
115
113
111
110
109
109
111
112
115
118
122
125
129
133
138
142
146
150
153
157
159
161
161
162
161
161
158
156
152
149
144
140
136
131
127
123
120
117
114
111
110
109
109
110
111
114
117
120
124
128
133
136
140
145
149
153
156
158
161
161
162
162
161
158
156
154
149
146
141
137
132
129
124
121
118
114
112
110
110
109
110
111
113
115
119
123
127
130
134
139
144
148
152
154
157
160
162
162
162
161
160
157
155
151
147
143
138
134
130
125
122
119
115
113
111
110
109
110
111
113
115
118
121
125
129
133
137
142
146
150
154
157
159
161
162
162
161
160
158
156
152
149
144
140
136
130
127
123
120
117
114
112
110
109
109
110
112
114
117
121
124
127
131
136
141
145
149
152
156
158
160
161
162
161
161
159
157
153
150
146
141
137
132
128
124
121
117
114
111
110
109
109
110
111
113
116
119
123
127
130
135
139
143
147
151
155
157
160
161
162
162
161
159
157
154
150
147
143
138
133
129
126
122
118
116
113
111
110
109
110
111
112
114
118
121
125
128
133
137
142
146
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
135
131
127
123
120
116
114
111
110
109
109
110
112
114
117
120
124
127
132
136
140
145
149
153
155
158
160
162
162
162
161
158
156
153
150
146
142
137
133
128
125
121
118
114
112
111
109
109
110
111
113
116
119
123
127
130
134
139
143
147
151
154
158
159
161
162
162
161
159
157
154
151
147
143
139
134
130
126
122
118
116
113
111
109
109
109
111
112
115
118
122
125
128
133
137
142
146
150
153
157
159
160
162
162
161
160
158
155
152
148
144
140
136
131
127
124
120
116
114
111
110
109
109
110
111
114
116
120
124
127
132
136
140
144
148
152
155
158
160
161
162
162
161
159
156
154
149
145
142
137
133
128
125
121
118
115
112
111
110
109
110
111
113
116
118
124
128
127
133
141
140
148
154
153
157
161
160
162
163
160
160
158
153
150
147
144
139
134
129
127
122
118
116
114
110
109
109
110
111
112
115
117
121
125
129
133
138
143
146
150
154
157
158
160
162
162
160
161
159
155
152
148
145
140
136
131
127
123
120
117
114
111
110
110
109
110
111
114
117
120
124
127
132
136
141
144
149
152
156
158
160
161
162
162
160
159
156
153
150
146
142
137
132
128
125
121
118
114
113
110
109
109
110
111
113
116
119
122
126
130
134
139
143
147
151
154
158
159
161
162
162
161
160
157
154
151
148
143
138
133
130
126
122
119
115
113
111
110
109
109
111
112
115
118
121
125
129
133
137
142
146
150
153
157
158
161
162
162
161
160
158
156
152
149
144
140
136
131
127
123
120
116
114
111
110
110
110
110
111
114
117
120
124
127
131
136
141
145
149
153
156
158
161
162
162
162
161
159
156
154
150
146
141
137
132
128
125
121
117
115
112
110
110
109
110
111
113
116
119
122
126
130
134
139
143
147
151
155
157
160
161
162
162
161
160
157
155
151
147
143
139
134
130
126
122
119
115
113
111
110
109
110
111
112
115
118
121
125
128
133
138
142
146
150
154
156
159
161
161
162
161
160
158
156
153
149
144
140
136
131
127
123
120
116
114
111
110
109
109
110
112
114
116
120
123
127
131
136
141
145
148
153
156
158
160
161
162
162
161
158
157
153
150
146
142
137
133
129
125
121
117
115
112
111
109
109
110
111
113
115
119
122
127
130
134
139
143
147
151
155
158
160
161
162
162
161
159
157
155
151
147
143
138
134
130
126
122
118
115
113
111
110
109
110
110
113
114
118
121
125
129
133
137
142
146
149
154
157
159
161
163
162
161
160
158
155
152
148
144
140
135
131
127
124
120
117
114
111
110
109
109
110
112
114
117
120
124
127
131
136
140
145
148
153
155
158
161
162
161
162
161
158
156
153
150
146
141
137
133
128
125
121
117
114
112
111
109
109
110
111
113
116
119
122
126
130
134
139
143
147
151
154
157
159
161
162
162
161
159
157
154
151
147
143
139
134
130
126
122
119
115
112
111
109
109
110
111
112
114
118
121
125
128
133
137
142
145
150
153
157
159
161
162
162
162
159
158
155
152
149
144
140
136
131
127
124
119
117
113
111
110
110
109
110
111
113
116
120
124
127
132
135
141
144
149
152
156
158
160
161
162
162
160
159
156
153
150
146
142
137
132
128
125
121
118
114
112
110
110
109
110
111
113
116
118
123
126
130
134
139
143
147
151
154
157
159
161
162
162
161
159
157
154
151
147
144
138
134
130
126
122
118
115
113
111
110
109
109
111
111
115
117
121
125
128
133
138
142
146
150
153
156
159
161
161
162
162
160
158
155
152
149
144
140
136
131
127
123
120
117
114
111
110
109
109
110
111
114
116
120
123
127
131
136
141
144
149
152
156
158
161
161
162
162
161
159
156
153
150
146
142
137
133
128
125
121
118
114
112
110
110
109
110
111
113
116
119
122
126
130
134
139
143
147
151
155
157
160
161
162
162
161
160
157
155
151
147
143
139
134
130
126
123
119
115
113
111
110
109
110
111
112
115
118
121
125
129
133
138
142
146
150
154
157
159
161
162
162
161
161
158
156
152
149
144
141
136
131
127
124
120
117
114
112
111
109
110
110
111
114
117
120
124
127
132
136
140
145
149
153
156
158
161
161
162
162
161
159
157
153
150
146
142
137
133
129
125
121
117
115
112
111
109
109
110
111
113
116
119
122
126
130
134
138
143
147
151
155
157
159
161
162
162
162
159
158
154
152
148
143
139
134
130
126
122
119
116
113
111
110
110
109
111
112
115
118
121
125
129
133
137
142
146
150
153
157
159
160
162
162
162
160
158
156
153
149
145
140
135
133
127
123
122
117
111
113
109
107
113
110
109
116
117
118
126
127
130
137
140
143
149
152
156
159
159
161
163
162
161
160
156
153
150
146
142
137
133
129
125
120
118
115
112
111
109
109
110
111
112
115
118
122
126
130
134
139
143
147
152
154
157
159
161
162
162
161
159
157
154
151
148
144
139
134
130
126
122
119
115
113
111
110
109
109
111
112
115
118
121
125
128
133
137
142
146
150
153
156
159
161
162
162
162
160
158
155
153
148
145
140
135
132
127
124
120
117
114
112
110
109
109
111
111
114
117
120
124
127
132
136
140
144
148
152
155
158
160
161
162
162
161
159
156
154
150
146
142
137
133
128
125
121
118
115
112
111
109
109
110
111
112
116
119
122
126
130
134
139
143
147
152
154
157
159
161
162
162
161
159
157
155
152
147
143
138
134
130
126
122
119
116
113
111
110
110
110
111
112
115
117
121
125
128
132
136
142
146
150
153
157
159
161
162
162
162
160
158
155
152
148
145
140
136
131
127
124
120
117
114
112
110
109
109
110
111
114
116
120
123
127
131
135
140
144
149
152
155
158
160
161
163
161
160
159
156
154
150
147
142
137
133
129
125
121
118
115
112
110
110
109
110
111
113
115
118
122
126
129
134
139
143
147
150
155
157
160
161
162
162
161
160
157
155
151
148
144
139
134
130
126
123
118
116
113
111
110
109
110
110
112
114
117
121
125
128
132
137
141
146
150
153
156
159
161
162
162
161
161
158
156
152
149
145
141
136
132
127
124
120
117
114
111
110
109
109
110
111
114
116
119
123
127
131
135
139
144
148
152
156
158
160
161
162
162
161
159
157
153
150
146
142
137
133
128
125
121
118
115
112
111
110
110
111
111
112
115
119
122
127
130
133
138
144
147
150
154
158
159
161
162
162
162
159
158
155
152
147
143
139
134
130
127
123
119
116
113
111
110
109
110
111
112
114
118
121
126
127
133
138
141
145
149
154
156
158
161
162
163
161
160
158
156
153
149
144
140
135
132
127
124
120
116
114
112
110
109
110
110
112
113
117
120
123
127
131
136
140
145
148
152
155
158
160
161
162
162
161
159
157
154
150
145
142
138
133
129
125
121
118
115
113
111
109
109
110
111
113
115
119
122
127
130
134
139
143
147
151
154
157
160
161
162
162
161
159
157
154
151
148
143
139
134
130
127
123
119
116
113
111
110
109
110
110
112
114
117
121
124
128
133
138
141
145
149
154
157
159
160
162
162
162
160
158
156
152
149
144
140
135
131
127
124
120
117
114
112
111
109
110
110
111
114
116
119
124
127
132
135
140
144
149
153
155
158
160
162
162
162
161
159
156
154
150
146
142
137
133
128
125
121
118
115
112
111
110
110
110
111
113
116
118
123
126
130
134
139
143
147
151
154
157
159
161
162
162
161
160
158
155
152
147
144
139
135
130
127
122
119
116
113
111
110
109
109
111
111
115
117
121
125
128
132
137
141
145
150
153
156
158
161
162
162
162
160
158
156
153
149
145
141
136
132
127
124
120
117
114
111
110
110
109
110
111
114
116
120
123
127
131
135
140
144
148
152
156
158
160
161
162
162
161
159
157
154
150
146
142
137
133
129
125
121
118
115
113
111
110
109
110
111
113
116
119
123
126
130
134
139
143
147
151
154
157
159
161
162
162
161
160
157
155
152
147
144
139
134
130
127
122
119
116
113
111
110
109
109
111
112
115
117
121
124
128
132
137
142
146
150
153
156
158
161
162
162
161
161
158
156
153
149
145
140
136
131
127
123
120
116
114
111
111
109
109
110
111
114
116
120
123
127
131
136
140
144
148
152
155
158
159
161
163
162
161
159
156
153
150
146
142
138
133
129
126
122
118
115
113
111
109
110
110
110
113
116
118
122
126
130
134
138
142
148
151
155
157
159
160
164
161
158
162
157
153
154
147
141
141
134
129
128
122
118
117
113
110
110
109
110
111
111
115
119
119
125
130
132
136
141
146
149
153
156
158
160
162
162
162
160
158
156
153
149
145
141
136
132
127
124
120
117
114
112
110
109
109
110
111
113
116
120
123
127
131
135
140
144
148
152
155
158
159
162
162
162
161
159
157
154
150
146
142
138
133
129
126
121
118
115
113
111
109
109
109
111
112
115
118
122
126
129
134
138
143
147
151
154
157
159
161
162
162
161
159
158
154
152
147
143
139
135
130
127
123
119
116
113
111
110
110
109
111
112
115
117
121
125
128
133
137
141
145
149
153
156
159
161
161
162
162
161
159
156
153
149
145
141
136
132
127
124
120
117
113
111
110
110
109
110
111
114
117
119
124
127
132
135
139
144
149
152
155
158
159
161
162
162
161
159
156
154
150
146
142
137
133
128
125
121
118
115
113
111
110
110
110
111
112
115
118
123
127
129
133
138
143
147
151
154
157
159
161
162
162
161
159
158
155
151
147
144
139
134
130
126
123
119
116
113
111
109
109
109
111
112
115
118
121
125
128
133
137
142
146
150
153
156
159
161
162
162
162
160
158
156
153
149
145
141
136
131
127
124
120
117
114
112
110
109
110
110
112
114
116
120
124
127
131
136
140
144
148
152
155
158
160
161
162
162
161
159
157
154
150
146
142
138
133
129
125
121
118
115
113
111
110
109
110
111
112
115
118
122
126
130
134
139
143
147
151
154
157
159
161
162
162
161
160
157
155
152
147
144
139
135
130
127
123
119
116
113
111
110
109
110
111
112
114
117
121
125
128
132
137
141
145
149
153
156
158
161
162
162
161
160
158
156
152
149
145
141
136
132
127
124
121
117
114
112
110
109
110
111
111
113
116
120
122
127
131
135
139
144
148
152
155
157
160
161
162
161
161
159
157
154
150
146
142
138
133
129
125
122
118
115
113
111
109
110
109
111
113
115
118
122
127
129
133
138
143
147
150
154
157
159
161
162
162
161
160
158
155
151
148
144
139
135
130
127
123
119
116
114
111
110
109
109
110
112
114
117
121
124
128
132
137
141
145
149
154
156
158
161
161
162
161
161
158
156
152
149
145
140
136
131
127
123
120
116
114
111
110
109
109
110
111
114
116
120
123
127
131
135
139
144
148
152
155
157
160
161
162
162
161
159
157
154
150
146
142
138
133
128
125
121
118
115
112
110
110
109
109
111
112
115
119
122
126
129
134
138
143
147
151
154
157
160
161
162
162
161
159
157
155
151
148
143
139
134
131
126
122
119
115
113
111
110
109
110
110
112
114
117
121
125
128
132
137
141
146
149
153
156
159
160
162
162
161
160
158
156
152
149
145
141
136
131
127
124
120
117
114
112
110
109
109
110
111
113
116
119
123
127
131
135
139
144
148
152
155
158
160
161
162
162
161
158
157
154
150
146
143
138
133
128
125
121
118
115
112
111
109
109
109
111
112
115
118
121
126
130
134
137
143
147
151
154
156
158
161
162
161
161
159
158
155
152
148
144
139
135
130
127
123
119
116
113
111
110
109
109
111
112
114
117
121
126
128
132
136
141
146
150
153
156
158
160
161
162
162
160
158
156
153
149
145
141
136
132
127
124
120
117
114
112
110
109
109
110
111
113
116
119
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
157
154
150
146
142
138
134
128
125
121
118
115
113
111
110
109
109
111
113
115
118
122
125
130
134
138
143
146
150
154
157
159
161
162
162
161
159
157
155
151
147
144
139
135
130
127
123
119
116
113
111
110
109
109
110
112
114
117
121
125
127
132
136
142
146
149
152
157
159
161
162
162
162
160
158
156
153
149
145
141
137
132
127
124
120
117
114
112
110
110
109
110
111
116
115
117
125
126
130
138
138
144
151
149
154
162
159
161
163
161
159
159
157
154
151
145
142
139
133
129
127
121
117
115
113
110
110
109
109
110
113
116
118
122
126
129
134
138
142
147
151
154
157
159
161
162
162
161
160
157
155
152
148
144
139
135
130
127
123
119
115
113
111
110
110
109
111
111
114
117
121
124
127
132
136
141
145
149
153
156
158
161
162
162
161
161
158
156
153
149
145
141
136
132
127
124
121
117
114
112
110
110
109
110
111
114
116
119
123
127
131
135
140
144
148
152
155
158
160
161
162
162
161
159
157
154
150
147
142
138
133
129
125
122
118
115
112
111
110
109
110
111
113
115
118
122
125
129
133
138
143
147
151
154
157
159
160
162
162
161
160
158
155
152
148
143
139
134
130
127
123
119
115
114
111
110
109
110
110
112
114
117
121
124
128
132
137
141
146
149
153
156
158
161
161
162
162
161
158
156
153
149
145
141
136
132
128
124
121
116
114
112
110
109
110
110
111
113
116
120
123
127
130
135
140
144
148
152
155
157
160
161
162
162
161
159
157
154
150
146
142
138
133
129
125
122
118
116
112
111
110
109
109
111
113
115
118
122
126
129
134
138
143
146
151
154
157
159
161
162
162
162
160
158
155
152
148
143
139
135
131
127
123
119
116
113
111
110
109
109
110
112
114
117
120
125
128
133
136
141
145
149
154
156
158
160
162
162
162
161
158
156
153
149
145
141
136
132
128
124
121
117
114
112
111
109
110
109
111
113
116
120
124
127
130
134
139
144
148
152
155
158
159
161
162
162
161
159
157
154
151
147
142
138
133
129
125
122
117
115
112
111
109
110
110
111
112
115
118
122
126
129
134
138
143
146
150
154
157
159
161
162
161
161
159
158
155
152
148
144
139
134
131
126
124
119
115
113
112
110
108
110
111
112
114
117
121
125
127
132
137
141
145
149
153
156
159
160
162
162
162
161
158
156
153
149
145
141
136
132
127
124
119
117
115
111
110
109
110
110
111
114
117
120
123
127
131
135
140
144
148
152
155
158
159
161
162
162
161
159
157
153
151
146
142
138
133
129
125
121
118
115
112
111
109
110
109
111
113
115
118
122
126
129
134
138
143
147
151
154
157
159
161
162
162
161
160
157
155
151
148
143
139
134
131
127
123
119
116
113
111
110
109
109
110
112
114
117
121
125
127
132
137
141
145
149
153
156
158
161
162
162
162
160
158
156
152
149
145
141
136
132
127
124
120
117
114
112
110
109
110
110
111
113
116
119
124
127
131
135
139
144
148
152
155
158
159
162
162
162
161
159
157
154
150
146
142
138
134
129
126
121
118
115
112
110
110
109
110
111
112
115
118
122
126
129
133
138
143
146
150
154
157
159
161
162
162
162
160
158
155
152
148
144
139
135
131
127
123
120
116
113
111
110
110
109
110
112
115
117
120
125
127
132
136
141
145
150
153
157
158
161
162
162
162
160
158
156
153
149
145
141
137
132
128
124
121
118
114
112
111
110
109
110
111
114
116
120
123
127
131
135
140
144
148
152
155
158
159
162
162
162
161
159
157
154
150
147
142
138
134
129
126
121
119
115
113
111
110
109
110
111
112
115
118
122
126
129
133
138
142
146
150
154
157
159
161
162
162
161
160
158
155
152
148
144
140
135
130
127
123
120
116
114
111
110
109
109
110
112
114
117
120
124
128
132
136
141
145
149
153
156
158
161
161
162
162
160
158
156
153
149
145
141
137
132
128
124
121
117
114
112
110
109
109
110
111
113
116
119
123
127
131
135
139
143
148
152
155
157
159
162
162
162
161
159
157
155
151
146
143
139
133
129
126
122
118
114
112
111
110
109
109
111
113
115
118
122
126
129
133
137
142
147
150
154
156
159
161
162
162
162
160
158
155
152
148
143
143
134
128
128
122
118
119
112
111
113
108
108
112
111
114
118
119
123
127
132
137
141
144
149
153
155
159
161
161
161
162
160
158
156
154
149
145
142
137
132
127
124
120
117
115
112
110
109
109
110
111
113
116
119
123
127
130
135
139
144
148
152
155
157
159
162
162
161
161
159
157
154
151
147
143
138
134
129
126
122
118
115
113
111
109
109
110
111
112
115
118
121
125
129
133
138
142
146
150
154
157
159
161
162
162
162
159
158
155
152
148
144
140
135
131
127
123
120
116
114
111
110
110
109
110
112
114
117
120
124
127
132
136
141
145
149
153
155
158
160
162
162
162
161
159
156
153
149
145
141
136
133
127
125
121
117
114
112
110
109
110
110
111
113
116
119
123
127
130
135
139
144
148
152
154
158
159
161
162
162
161
159
157
154
151
147
143
138
134
129
126
122
118
115
112
111
110
109
110
111
112
115
118
121
126
129
134
138
143
146
150
154
157
159
